Windows SDKやMFCに関するメモです。 (記載内容について正しいことを保証するものではありません。MSDN等で確認してください) おやじプログラマはprintf()でのデバッグが大好きです。(笑) main()で始まるコンソールアプリでは標準出力のコンソールが自動的に起動されますが、winmain()ではじまるWindowアプリでは自力でコンソールを起動する必要があります。 -コンソールの起動方法 {//起動 AllocConsole(); FILE* fp; freopen_s(&fp, "CONOUT$","w", stdout); freopen_s(&fp, "CONIN$", "r", stdin); } {//開放 FreeConsole(); }
2009.10.08 VISTA Aeroのフレーム拡張について (3) カテゴリ:カテゴリ未分類 ここ数日、エアロのフレーム拡張でハマッテいました。 VISTAのエアロを使ったときは、通常のウィンドウマネージャとDWMの2階建の構成になるようです。 通常ウインドウサイズを取得するにはGetWindowRect()でウインドウ矩形を取得します。しかしながら、エアロを使用していると見た目のウィンドウサイズの内側5pxのサイズが取得することになります。(正確には内側5pxを取得することがあります。) これが必ず内側5pxならまだいいのですが、どうもサイズ変更枠のウィンドウは見た目と同じサイズとなるようです。 ちなみに、フレーム拡張されたウィンドウのサイズを取得するにはDWM系の関数である DwmGetWindowAttribute()を使用すれば取得できます。 こんな感じのコードになります。
UsefullCode.net Visual Studio 2005/2008/2010やandroid SDK/NDKでの開発者向けに便利なソースコードを提供 This site provide you with useful source codes under 'USEFULLCODE license'. TCHAR系の型というのは初めての人にとっては非常に理解しにくい。理解できれば使えるようになるのだが、そうなっても実装に間違えることが多々ある。その理由がこれ。LPCTSTR、LPTSTR、LPSTR、LPCSTR、LPWSTR、LPCWSTRの6つが全て意味が違うということ。ぱっと見ではほとんど同じだがよく見ると「C」が付いていたり、「T」が1つ多かったりと微妙にスペルが異なっている。 これがどう違うのかと言うと... LPSTR = char* LPCSTR = const c
いまだに驚異になっているリムーバブルメディアで感染を広げる「MAL_OTORUN」。トレンドマイクロの3月インターネット脅威リポートにおいても8か月連続で被害報告数ベスト(ワースト?)1。大流行のConfickerもリムーバルメディア経由での感染機能を持っている。 マルウェアの実行はautorun.infを用いて自動実行するのは周知のこと。では、感染活動のほうに目を向けるとどうなのか。つまり、USBフラッシュに自分自身をコピーするのはどうやってるんだろう。プログラム側でUSBフラッシュが接続されたことを認識する必要がある。 実はこれは至って簡単で、Windowsは、USBフラッシュメモリの挿入を含めHWデバイスに変更が発生すると、すべてのアプリケーションに対して、「WM_DEVICECHANGE」メッセージを送信する。プログラム側でイベントハンドラを定義してこのメッセージを受け取った時の処
UsefullCode.net Visual Studio 2005/2008/2010やandroid SDK/NDKでの開発者向けに便利なソースコードを提供 This site provide you with useful source codes under 'USEFULLCODE license'. USBメモリーをUSBポートに挿したときや抜いたとき、DVDドライブにCD-ROMを入れたときなど、デバイスの状態が変化したときにはWM_DEVICECHANGEメッセージが届く。 残念ながらこのメッセージを通じて取得できるのは必要最低限の情報しかないため、続く処理を作るのはかなり面倒になる。しかし必要最低限の情報しかないため理解するのは楽だろう。 ここではメッセージを取得したときに得られる情報の一部をATLTRACEにて出力ウインドウに書き出している。 ATL/WTLアプリケーシ
This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. span.sup { vertical-align:text-top; } Windows With C++ Asynchronous WinHTTP. Kenny Kerr Contents WinHTTP Overview Session Objects Connection Objects Request Objects Request Notifications Request Cancellation Sending Request Data What's Next As a result o
最近のwindowsは普通に使っている範囲ではブルースクリーンに出会うこともなくなりましたが(デフォルトでブルースクリーンを出さずに即再起動するようになっただけでしょうか)、ドライバのコードを書いているとすぐに遭遇します。ブルースクリーンで表示されている情報は、ブルースクリーンを出す原因となった事象のコードとその事象にまつわる付加的な情報(PCの値であるとか、参照したメモリアドレスであるとか)が表示されます。しかし、自分のコードの何行目が原因だったのかを知るのにはクラッシュダンプを読んでみないとわかりません。 WinDbgのインストール クラッシュダンプを読むにはまずWinDbgというデバッガが必要です。このデバッガはカーネルのデバッグができるようにリモートから接続できるようになっていたりしますが(そういえばそんなことはgdbだとふつうにできる)無償でダウンロードできます。 Install
UsefullCode.net Visual Studio 2005/2008/2010やandroid SDK/NDKでの開発者向けに便利なソースコードを提供 This site provide you with useful source codes under 'USEFULLCODE license'. HRESULTとはlong型の数値だ。この型はCOMインターフェース関連の関数の戻り値として利用されることが多い。 関数の戻り値として使われることの多いBOOL型が成功を意味するのは「1」(=TRUE)で失敗が「0」(=FALSE)なのと似ている。 大きな違いはBOOL型がTRUEとFALSEの2値しか取らないのに対して、HRESULT型では0x00000000~0xFFFFFFFFまでの多くの値が利用される。そのためBOOL型では失敗の原因を取得するためにGetLastError
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く