タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

Programmingとc_c++とprogrammingに関するpipeheadのブックマーク (127)

  • 別のプロセスにコードを割り込ませる3つの方法 - インターネットコム

    目次 はじめに 1. Windowsフックのテクニック 2. CreateRemoteThread+LoadLibraryのテクニック プロセス間通信 3. CreateRemoteThread+WriteProcessMemoryのテクニック このテクニックを使ってリモートコントロールをサブクラス化する方法 CreateRemoteThread+WriteProcessMemoryのテクニックはどこで使用すべきか おわりに 付録 References はじめに CodeGuruのサイトにはパスワードスパイのチュートリアルがいくつか投稿されていますが、それらはいずれもWindowsフックを利用しています。このようなユーティリティを作成するには、他に方法はないのでしょうか? 実はあります。しかし別の方法を説明する前に、この問題について簡単に復習しておきましょう。 コントロールのコンテンツを

  • パスワード閲覧ソフトの仕組み

    パスワード閲覧ソフトというものがあります。例えば、有名なもので「パスみえ2000 1.00」があります。vectorなどで検索するとざっと4つほどみつかりますが、キーワードを変えるともっとあるかもしれません。しかし、それらはすべてソースコードが公開されてなかったので、仕組みを調べようにも、どうやっているのか分かりません。多分、この仕組みを知りたいと思ってる人は少なからずいるのではないか、と思い、今回の記事を書いてみました。 実際、ものすごく簡単な仕組みなので、どこかのサイトに紹介されててもよいと思ったのですが、検索してみると無いのですよね(もし見つけたらkenji@ruffnex.oc.toへ教えてください^^;)。なので自分で書いてみました。 ということで、今回はこのツールを実際に作ってみます。環境はWindowsXP + VC++.NETですが、Borland C++ 5.5.1でも確

  • volatileで最適化を抑制する - 職業としてのプログラミング

    C言語やC++,Javaにはvolatileという修飾子があります。組み込み系ソフトウェアやマルチスレッドのアプリケーションを書いている方にとっては、なじみ深い存在ですが、そうでない方にはあまり縁がないのかもしれません。しかし、volatileの使い方や存在意義を知らないままコーディングを行うと、思わぬバグを引き起こす場合があります。今回は、そのvolatileキーワードについて簡単に説明したいと思います。 volatileは初期のCであるK&Rには含まれていませんでしたが、ANSI C(C89)以降のC標準規格にはconstと一緒に含まれるようになりました(constとvolatileをあわせてcv修飾子と呼ぶこともあります)。一般的なCなら必ず備えている修飾子です。 volatile修飾子の意味ですが、「プログラミング言語C ANSI規格準拠」によると、 volatileの目的は,黙っ

  • ListView to CSVを作ってみよう#0

  • 64ビットになると何が変わる?――64ビットプログラミングのデータモデル

    64ビットになると何が変わる?――64ビットプログラミングのデータモデル:64ビットコンピューティング最前線(1/2 ページ) システムが64ビットになるとプログラム的には何が変わるのか。3つの基的な64ビットプログラミングデータモデルを取り上げながら、理解を深めていこう。 64ビットプログラミングで何が変わる? システムが64ビットになるとプログラム的には何が変わるのでしょうか。 まず、大きな変更点として、ポインタの幅(サイズ)が64ビットになります。このことで、より幅広いアドレスをカバーできるようになります。そもそも、ポインタのサイズが32ビットのままなら64ビットに拡張される意味がありませんし、これは当然といえば当然のことかもしれません。 通常、ポインタはポインタとしてしか使用されることはありませんし、intとポインタとで代入を行うといったトリッキーなことをしていないかぎり、そのま

    64ビットになると何が変わる?――64ビットプログラミングのデータモデル
    pipehead
    pipehead 2005/06/13
    LP64 (I32LP64), LLP64 (IL32P64), ILP64
  • IEコンポーネントの使い方 [VC++の使い方]

    IE4.0からIEコンポーネントを使えるようになりました。IEコンポーネントは、Donutなどの国産タブブラウザのほか、色々なアプリケーションで利用されています。 IEコンポーネントは、MFCのCHTMLViewを使えば簡単に作ることができますが、MFCを使いたくない場合もあります。この場合、ATLを選択するのが通常ですが、世の中のドキュメントの大半は ATL と AppWizard を組み合わせた使い方しか載っていません。ここでは、SDK的にIEコンポーネントを使う方法を取り上げます。 サンプルコードはこちら(35.9KB)(2002.12.15、プリコンパイル済みヘッダが見つからないエラーが出ないようにしました)。これをDLして解凍してください。詳細は、ソースファイルの中のコメント参照と言うことでお願いします。100行ほどのソースですので、ぜひ読んでみてください。 このサンプルでは、ダ

  • char、wchar_t(WCHAR)とTCHAR(dinop.com)

    文字列を扱う型としてよく知られているchar型はsizeof(char)=1バイトの型だ。 charに代入できるのは半角文字1文字で、漢字など2バイトからなる全角文字を代入したいとき は(微妙な表現だが)2つのcharが必要になる。 ユニコードを扱うための型として用意されたのがこのwchar_tだ。sizeof(wchar_t)=2バイトの 型でありchar型よりも使用バイト数が多い。 wchar_tに代入できるのはユニコードでの1文字で、半角や全角文字などの区別はない。 ヘッダーの中では以下のように宣言されている。 typedef unsigned short wchar_t; typedef unsigned short WCHAR; // wc, 16-bit UNICODE character つまりwchar_tとWCHARのどちらもunsigned short型として定義されて

  • HRESULT型の判定にSUCCEEDEDやFAILEDは使えない(ことがある)(dinop.com)

    解説 COMインターフェースは結果をHRESULT型で返すことが多い。しかしその戻り値を単純にFAILEDやSUCCEEDED マクロを使って判定すると実行時に例外などのエラーが発生することがある。 それは失敗時にS_FALSEを返す関数があるためだ。この値はSUCCEEDEDマクロでTRUE、FAILEDマクロでFALSE となる「成功」タイプの値だ。成功とは言うもののFALSEという微妙な値になっている。 BOOL型でも同じような問題がある。BOOLの場合はif(ret == TRUE)は正常に判定できないことがあるので if(ret != FALSE)やif(ret)のように成功判定をする。しかしHRESULT型の場合は単純にif(!FAILED(hr))の ようには解決できない。 HRESULT関連の実装 HRESULT型でよく使われるS_OKやSUCCEEDEDマクロなどはヘッダ

  • printf - Wikipedia

    printf(プリントエフ)は、C言語の標準ライブラリに属し、ヘッダーファイル stdio.h で宣言されている関数である。引数で与えられた書式付きの文字列を、環境によって設定された標準出力 (stdout) に出力する。その機能は国際標準規格「ISO/IEC 9899:1999」(通称C99)および日産業規格(旧称・日工業規格)による翻訳「JIS X 3010:2003」においてprintf関数は,与えられた実引数の前にstdoutを実引数として付加したfprintf関数と等価とする。と規定されている (7.19.6.3)。 この関数は、第1引数に与えられた文字列を出力する。C言語の他の単純な入出力関数に比べ、比較的複雑な構造を持っており、第1引数の文字列のなかで書式を指定することで、第2引数以降の任意の数の引数(可変長引数)を、書式に従って出力することができる。また、整数型(int

    pipehead
    pipehead 2004/12/16
    変換指定の一覧あり〼
  • WINVER _WIN32_WINNT _WIN32_WINDOWS _WIN32_IE 設定値

    Windows Win32 C/C++ プログラム実行環境指定マクロ値について( ..)φメモメモ ----- WINVER, _WIN32_WINNT, _WIN32_WINDOWS ----- Windows 95 WINVER=0x0400 _WIN32_WINDOWS=0x0400 Windows 98 WINVER=0x0410 _WIN32_WINDOWS=0x0410 Windows Me WINVER=0x0500 _WIN32_WINDOWS=0x0500 Windows NT 4.0 WINVER=0x0400 _WIN32_WINNT=0x0400 Windows 2000 WINVER=0x0500 _WIN32_WINNT=0x0500 Windows XP WINVER=0x0501 _WIN32_WINNT=0x0501 Windows Server 2003

    WINVER _WIN32_WINNT _WIN32_WINDOWS _WIN32_IE 設定値
  • [SDK32] C ランタイム関数の Win32 で対応する関数一覧

    すべての Microsoft 製品 Microsoft 365 Office Windows Surface Xbox セール サポート ソフトウェア Windows アプリ OneDrive Outlook Skype OneNote Microsoft Teams PC とデバイス Xbox を購入する アクセサリ VR & 複合現実 エンタメ Xbox Game Pass Ultimate Xbox Live Gold Xbox とゲーム PC ゲーム Windows ゲーム 映画テレビ番組 法人向け Microsoft Azure Microsoft Dynamics 365 Microsoft 365 Microsoft Industry データ プラットフォーム Power Platform 法人向けを購入する Developer & IT .NET Visual Studi

  • 気の利いたscanf -- part 1

    まず最初に一言 きちんと動くプログラムを速やかに作りたいのならば、scanfとfscanfは使ってはいけません。この二つの関数は空白と改行を同一視するという不自然な癖があるので、その事を意識して書くのならともかく、大抵の場合には考えているのと違う動きになってしまい、デバッグに苦労する羽目になります。 ここで説明するのは sscanf を使って簡単に文字列を解釈させるやり方です。sscanfをうまく使えば、結構複雑な式を比較的簡単な書式文字列で解析させることが出来ます。 scanfの入力規則 では、scanfの入力規則を復習しておきましょう。 書式文字列中の空白文字は、入力文字列中に「0個以上の空白類文字」が存在する事を示します 書式文字列中の'%'で始まる部分は、文字列を解析して対応する変数に格納するための変換規則を記述します 書式文字列中で変換規則を指示する為の文字列でない部分は、そのま

    pipehead
    pipehead 2004/04/15
    sscanf()
  • Windowsにおけるパスの規則

    パスまわりの規準は怪しい。私が知らないだけかもしれないが、資料も集まらないし、 一貫した定義はどこに置いてあるのだろうか。 とりあえず、Path* APIやその他のMS製ルーチンでどのように判定されるかを調べてみた。 注意。これらの関数はどれも/(スラッシュ)は区切り文字だと認識しない。 PathIsUNC 先頭の2文字が\かどうかのみで判断しているようだ。長さが2文字未満だとFALSE。 よって、\\\などでもTRUEになる。 PathIsUNCServer これも\\でTRUEになる。 けどこちらはその後に1つでも\が表れるかどうかも判断しているみたい。なので\\\はFALSE。 それ以外に条件はないようなので、どんな文字が含まれていても(\\C:とかでも)OK。 そして\\?\はアウト。 PathIsUNCServerShare \\に続く文字の中に\が1つだけ表れればTRUEになる

  • 小数同士の計算 - C言語関係掲示板 過去ログ994

    最近、C言語を勉強しはじめましたんですが、 解らない所があるので誰か教えて下さい。 float a,b; for(;;){ if (キーの入力) b = .1f; else (キーの入力) b = -.1f; a += b; } この様なプログラムを作ったんですけど、 最初の内は,変数aにちゃんと値 (0.1 0.2 0.3 〜 2.0 2.1・・・)が入るんですが、 途中ぐらいから、変数aの値がおかしくなってくるんです (2.5 2.6 2.7 2.7999 2.9999・・・ )と・・・ この様な事が起きないようにするにはどうしたらいいんでしょうか? 教えて下さい。 >この様なプログラムを作ったんですけど、 >最初の内は,変数aにちゃんと値 >(0.1 0.2 0.3 〜 2.0 2.1・・・)が入るんですが、 >途中ぐらいから、変数aの値がおかしくなってくるんです >(2.5 2.6

  • 古いWindowsへの対応

    TClock Lightは、Windows 95以降のどのWindowsでも動かせるようにしつつ、新しいWindowsの機能も使う、という方針です。そのため、このページに書かれているような対策をとります。 マクロWINVER、_WIN32_WINNT、_WIN32_IE Windowsのバージョンを考慮せずにプログラムを書いてコンパイルすると、Windows 98やMe以降でしか動かないものができてしまうことがあります。 マイクロソフトのSDKに含まれるヘッダファイル(BCCでもインストールされます)では、マクロWINVER、_WIN32_WINNT、_WIN32_IEが使われています。それぞれ、Windowsのバージョン、Windows NT(2000、XP)のバージョン、IEのバージョンを表します。これらのマクロの数値が新しければ、Windowsの新しい機能のためのマクロ、構造体、AP

  • ワイド文字 - Wikipedia

    ワイド文字(ワイドもじ、英: wide character)とは、主にC言語およびC++における文法要素で、1文字あたりのバイト数を通常より多くしたデータ型である。 C言語やC++の基実行文字集合は通常、ASCIIのサブセットの文字種からなる。ただし実際の文字コードが何であるかは規定されていない。 漢字のような拡張実行文字集合は、通常マルチバイト文字として扱われるが、1文字を構成するバイト数が可変長であり、来1つの文字でありながら複数の文字の組(あるいは文字列)として扱わなければならないなどの不便がある。そうした問題を解消するために、1文字を1つの整数値で扱えるようにすることを目指したのがワイド文字である。 C言語では1995年の ISO/IEC 9899/AMD1:1995 より、wchar_t 型や <wchar.h>、<wctype.h> などのヘッダーファイルが追加になった。ワ

    pipehead
    pipehead 2003/08/09
    wchar_t, char16_t, char32_t
  • 終了いたしました。

    作者ホームページサービス(hp.vector)は終了いたしました。 長らくのご利用、ありがとうございます。 ご不明な点があれば、お問い合わせページをご覧の上、お問い合わせください。 ※15秒後にトップページに戻ります。 (c) Vector HOLDINGS Inc.All Rights Reserved.

  • sizeof演算子

    せりか式 - C 言語チュートリアル - sizeof演算子 sizeof演算子について検索してくる人が多いようなので,真面目にsizeof演算子についても書いておくことにします. 簡単に言うと,sizeofに渡された型や変数のメモリサイズを調べるものです. sizeof演算子は2種類の使い方があります. sizeof(型) sizeof 変数や定数,あるいは式など 前者の型を与える方は特に悩む必要は無いと思います. 単に指定した型が利用するメモリサイズを返すものです. 問題は,後者の変数や定数を渡す方です. sizeofに変数を渡した場合,その変数名で確保されているメモリサイズを返します.

    pipehead
    pipehead 2003/04/06
    > 実はsizeof演算子を用いなくても、 サイズを知ることはできます。
  • TRACEで出力可能なのは半角512文字まで!(dinop.com)

  • Program Tips - SCMPX Frontend