アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
計算機科学者とは、壊れていないものを修理する人々のことである
使い回した開発者のミス? (スコア:0)
いや、おかしいなって気づいてもよほどあからさまな間違いでもない限り、そのやり方が正しいやり方なんだって思うだろ、普通。サンプルコードとはそういうもの。常考。
Re:使い回した開発者のミス? (スコア:1, すばらしい洞察)
サンプルコードとはそういうもの、常考。
Re:使い回した開発者のミス? (スコア:0)
(Borlandが)何でそんなにバグを認めるのがいやだったのか、今でも不明。
--
誰を信じちゃいけない、裏切られるから。
私も信じないで、貴方を裏切ってしまうから。
Re:使い回した開発者のミス? (スコア:1, 参考になる)
それはですね。Microsoft 提供の windowsx.h に
#define GetFirstChild(hwnd) GetTopWindow(hwnd)
ってのがあるため、VCL の GetFirstChild が勝手に置き換わってしまう問題を回避するための苦肉の策なのですよ。
幸い、VCL / PASCAL 言語は大文字小文字を同じとみなしますからね。
Microsoft も反省したのか、その後のヘッダーファイルでは
#define IAccessibleWinSAT_get_accChildCount(This,pcountChildren)
こんな感じに、簡単には衝突しないように配慮しているようです。
Re:使い回した開発者のミス? (スコア:0)
C++ Builderの人は無視ですか。そうですか。
なら、『VCLヘルプに「Get~Child」と書くな』と思うCB使い。
このストーリーのごとく「コピペしても動かないサンプル」となる。
しかも(VCLライブラリの)TreeViewクラスメソッド(だった気がする)なのに、windows.hと名前が衝突するのか?
Re:使い回した開発者のミス? (スコア:0)
グローバルなコンテキストで #define されちゃ、回避しようがないでしょう?
マクロ展開はクラスメソッドかなんだか判断せずに文字列置換。ですよ。
Re:使い回した開発者のミス? (スコア:0)
最近c#ばっかりだから、c/c++はもう忘却の彼方だ。
では、Microsoftのwindows.hの仕様不良&Borlandのマニュアル不備って事で