WinAPI

SetWindowsHookEx で死亡

RozenBiff にちょっとしたジョークが入れれらたら面白いだろうなぁ〜…と思い、[http://www.microsoft.com/JAPAN/developer/library/jpwinpf/_win32_setwindowshookex.htm:title=SetWindowsHookEx] にチャレンジしてみたのですが……… 期待通りに動か無ぇえええ…

WaitForMultipleObjects で例外

rozenbiff.exe の 0x77e7bc3f で初回の例外が発生しました : Microsoft C++ exception: exception @ 0x01b3f738。 なんて報告されてしまう…う〜ん…?ただ、戻り値は正常に WAIT_OBJECT_0 とか返ってくるので、問題ない…? ホント?^^;

GetProcAddressについて

GetProcAddressW が存在しないようでショック orz今後のためにも自作するかぁ… 一応置いておこう /** * @param hModule [in] DLL モジュールのハンドル を指定します。 * @param lpProcName [in] 関数名、もしくは、下位ワードに関数の順序値・上位ワードに …

深い理由があるのかしら……?ホント?

知人と話してたら 「VB6の VARIANT型が 云々」 って話が出てきたので、VCでの VARIANT構造体について話してみたり*1してたのですが…VARIANT構造体の中に DECIMAL 構造体 ってのが含まれてるのを発見したのですよ。 しっかり定義されてるんだー とか感心しつ…

貴方の事をずっとお待ちしておりました。結論:好きです。

某F社の面接が終わり、アキバで負け組み感を沢山味わってきたのですが^^;、とにかく今日は早く帰りたかった!ずっと待ち望んでいた、あの子が届くから……。 というわけで、家に帰宅したら無事届いてました!↑キターーーー!!!↑きたあああああーーーーー…

子スレッドがウィンドウ作成完了するまで待ってみよう。

WaitForSingleObject を使って、親スレッドは作成完了を待ってるわけですが、どーも子供が CreateWindow した時に戻ってくるのが遅い。「親が WaitForSingleObject で待機しちゃってるのでメッセージ処理できず -> 子供ウィンドウはメッセージ送信が Timeout…

C ランタイムライブラリの pow 関数が意図しない結果を返す

pow(10, -1);上記コードの戻り値として、Visual C++ 6.0 などの以前のバージョンの CRT では "0.1" が返りますが、Visual C++ .NET 2003 の CRT では、"0" が返ります。 との事。確かに、math.h 515行目近辺にこんなコードがありますねぇ。 template inline …

Advanced Windows 読め … るよこれ!!

Advanced Windows 取扱 再開 !3月頭から取扱中止になってたのはなんだったんだー!?^^;「あ?在庫無くなった? 重版するからちょいとまちなー!」 ということだったのでしょうか。 なんにせよ良かった。 …とはいえ Effective C++ More Effective C++―…

Advaced Windows 読め … 無ぇぇぇぇぇぇぇ!!

よおぉおおーーし!!バイト完了!! バイト代もデータを納品した日に支給!! お金が沢山あると、やっぱりちょっとは遊びたくなるよね!!ってことで、ついに決断したわけです。 Advanced Windows 買おうぜ!!!(※自分の中では遊び) 1万円する本ですから…

rtutils.dll …?

メールチェッカーでは、自前では通常時に追加1スレッドの計2スレッドしか使っていないはずなのに、タスクマネージャで見ると、3スレッド使っていることになっている…はて?メールチェック時に更に追加で利用したスレッドがゾンビ化してる…? かと思いきや…

そりゃ無限ループするわ

知り合いのマシンで現在作成しているアプリケーションを動かしてみたところ、どうにも無限ループするという話が入ってきました。 が、開発機では再現せず。 む〜ん… とか思ったら、サーバーの Dual Pen3 マシンで見事に固まった! なんじゃこりゃーー!? 何…

お前は既に…死んでいる…  …んだよね?

[http://www.microsoft.com/japan/msdn/library/ja/jpdllpro/html/_win32_createthread.asp?frame=true:title=CreateThread] / [http://www.microsoft.com/japan/developer/library/vccore/_crt__beginthread.2c_._beginthreadex.htm:title=_beginthreadex] …

そんなことする人嫌いです。

WTL を使い始めてコーディングをしていたりするのですが、そうなると必然的に ATL を #include する必要が出てきます。 まぁ、ATL自体は私自身興味があったので拒否はしませんし、 #include するだけというお手軽設計のようなので、この点は特に問題ありませ…

プロパティシートに大苦戦

「画面のプロパティ」 や 「ファイルのプロパティ」 で大活躍のプロパティシート。 私これ、てっきり Tabコントロールで自前で実装してるのかと思ったのですが、PropertySheet 関数で共通のフォーマットで作成できるんですね。 自前で実装しなくて良かったー…

問題解決…って、うそーん… orz

よ、よやく原因が判明しました…。何が悪かったのかというと、マイナーなモードレスダイアログを利用した点 そのウィンドウが処理しないメッセージまで、PSM_ISDIALOGMESSAGE で投げていたから …のようです。モードレスダイアログだと [http://www.microsoft.…

CreateCompatibleDC

Direct3D を弄繰り回してた人なので、ぶっちゃけ デバイスコンテキスト というのがいまいちよく分かってない。 そんな中でも確り作品を仕上げなくてはならないっ! ってことで、せこせこコード打ってます。さてバックバッファとしてビットマップを作成し、そ…

ガッカリなコード

int WINAPI WinMain(〜) { ::SuspendThread(::GetCurrentThread()); return 0; } …誰か…誰か、助けてあげてくれ…ッッ!でも、マルチスレッドアプリであれば、自分で自分を縛ってしまう いかにもMっぽい コードもありなのかなぁとか思ってみる。

ふぉんとfontフォント

フォントって未だに理解できない部分が多いです。^^;先日、あるテキストの長さを調べたく GetTextExtentPoint32 なる関数を利用してみました。 この第4引数で大きさを取得できるわけですが… 幅と高さ(論理単位) 「論理単位」…?ある横幅を超えてるかど…

Trackbarのメモリ表示と見栄え

Win32標準コントロールである 「トラックバー」。 こいつをちょっと弄ってたのですが…どうも見栄えが悪い。 メモリ表示を付けてみたらカッコ悪い。↑下がちょん切れててかっこ悪い何でかなーと色々弄ってみたら、単に下向きのコントロールにしてしまえばOK…

SetWindowLongPtr / GetWindowLongPtr

%Subject%で警告が出るのはどうにかならんかのう…。Win32だと 単なるマクロで SetWindowLong やら GetWindowLongr を見に行くから、 GWLP_USERDATA でポインタとか格納する所でまず「ポインタ切り詰めますよ〜」と警告がでる。 取得するときは LONG から ポ…

TextBoxと改行コード

ostringstream を利用して、簡単なログを記録し、それを TextBox (Auto VScroll フラグ付き) に出力しようとしました。 こんなコード。 …あ、ちなみに、TCHAR を使って ascii / unicode を切り替えられるようにしています。 typedef std::basic_ostringstr…

ExExExExExExEx

[http://msdn.microsoft.com/library/en-us/intl/nls_EnumDateFormatsExEx.asp?frame=true:title] function [http://msdn.microsoft.com/library/en-us/intl/nls_EnumCalendarInfoExEx.asp?frame=true:title] function MSさん。別に関数名で笑いを取らなくて…

VS.NET 2003 と _MSC_VER

asm を使う必要が出てきたのですが、VS2005では インラインアセンブラが禁止されるということで、VS2003 と VS2005 でコードを切り替えようと思ったわけです。ココで出てくるのが _MSC_VER マクロ。 VS2003 で _MSC_VER マクロに対してマウスカーソルをポイ…

寂しい関数だなぁ〜おぃ。

RECT の left, top を POINT に変換してくれるようなマクロなかったっけ〜 とか思い POINTTOPOINTS 周辺を確認してたんですが、こんな関数があることを始めて知りました。 IsHungAppWindow 関数 ...... ('A`) 私がMS製アプリに対して使うのが最初か、他の人…

StringCchLength はいらない子?

文字列の長さを算出する関数といえば strlen, wcslen, _mbslen …つか _tcslen lstrlen がありますが、VC7.0 (?) から導入された strsafe.h では新たに [http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/strings/string…

結局Bitmapへ

LayeredWindow へのフォントの描画は、結局Bitmapでバックバッファを作成した後、そいつを UpdateLayeredWindow で利用することに実現させるようにすることにしました。なので、元となるのビットマップをバックバッファに一旦転送して(負け組み間が凄くある…

文字列が表示されません。orz

LayeredWindow に対する TextOut がうまくいかない。関数自体は成功しているのですが、どーも表示されず…う〜ん…。 GDIに慣れてない故に何かミスしてたりするのだろうか。 …でも、コードそのままで、DCだけデスクトップのハンドルにすると、しっかりデスクト…

まんまとワナにかかってねぇかコレー!?

文字列が表示されないということで、UpdateLayeredWindow API とかから調べなしてた所、MSのLayeredWindowの解説ページ があることを思い出しました。で、そこに行って再度読みなおしたら、次のように書いてあるではありませんか。 今までどおりに Win32 描…

落ちるぞぉ〜?orz

こんなコードを書いたのはいいのですが落ちてしまいます。 // この関数からスタート int CHoge::MyCreateThread(HWND hWnd) { SStartupParam sParam = { hWnd, this } _beginthreadex(&ThreadStartFunc, &sParam); // 引数の順番忘れた。(ぉ return 0; } un…

Shell_NotifyIcon 〜〜

右下を見ると、大抵「時計」と「タスクトレイのアイコン」があると思います。 右上にあったり左下にあったりする人は、 PGが泣きを見るので 今すぐタスクバーを下に戻しましょう。(何さて、タスクトレイのアイコンですが、Shell_NotifuIcon API で登録で…