[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/04 11:46 / Filesize : 212 KB / Number-of Response : 986
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build62



1 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:40:03 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

過去スレ、関連リンクは>>2-10くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

- Win32API質問箱 wiki
wiki.livedoor.jp/program1/d/FrontPage

【前スレ】
61 ttp://pc11.2ch.net/test/read.cgi/tech/1199514664/

950 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 19:10:15 ]
そもそも Win32API には 3D 描画機能が用意されてないから
全部ソフト的に対処する必要があるぜ。
要するに 3D 描画エンジンを自作するという。
しかもハードウェアの助けが得られないから遅い。

まあ、DirectX を通さずにグラフィックボードを直接操作するんなら話は別だが、
あまり意味がないよね。

951 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 19:12:47 ]
これを見て勉強しる!
www.geocities.jp/higuchuu4/index.htm

952 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 19:16:00 ]
>>950
OpenGLがあるじゃないか
微妙な所だがChoosePixelFormatなんかはgdi32にあるからWin32APIということにする

953 名前:デフォルトの名無しさん [2008/03/02(日) 19:29:29 ]
DIRECTXはマニアがやってたハードを解析して最大限の性能を引き出す
というのをMSが肩代わりしてくれる仕組みだ
winAPIでは3Dは無理

954 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 19:45:52 ]
こんなのもあるよ
DarkGDK
www.microsoft.com/express/samples/GameCreators/

955 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 19:59:43 ]
>>953
全角厨キモイ

956 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 20:02:36 ]
全角だけでなく、大文字小文字も無茶苦茶。
3 は半角で D が全角だったりも。

957 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 20:59:59 ]
少し話題に上ったので GetMessage() の戻り値の話をさせてください。
どうやら GetMessage() で -1 が返るのは、引数が無効な値の場合に
限られるようです。つまり msg を MSG 構造体とすると、
(A) GetMessage(&msg, hWnd, 0, 0);
(B) GetMessage(&msg, NULL, 0, 0);
(A) では -1 かどうかのチェックをした方がいいですが、(B) のような
より一般的なケースではチェックは不要ということになります。
なお、MSDN に載っているのも (A) に対する警告と思われます。

958 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 21:01:04 ]
なるほど。



959 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 00:30:44 ]
でもそれはFor exampleとして載っているだけであって
それ以外ないとは書かれていないわけで

960 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 01:15:16 ]
>>957
参考になったが

>>959
という意見もあるし結局どっちなんだろう



961 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 01:24:28 ]
俺は心配性だから常に-1が返ってくる可能性があると思っている。

962 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 01:27:35 ]
そもそも"handle the error and possibly exit"って具体的にどうすればいいのやら・・・

問答無用でbreakするようなコードだとWM_DESTROYを通さないから色々リークするだろうし、
WTLはcontinueしてるけど、毎回-1が返ってくるような状況だとループから抜け出せないし

正直-1の場合は無視でいいとオモタ

963 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 01:31:29 ]
リークとか気にしないでreturnしています。

964 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 01:35:23 ]
とりあえずGetLastError()だけどっかに吐いてから即死します。

965 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 12:59:40 ]
なんで誰も>>915>>932の件の正解を書かない?
一例として、WM_CTLCOLOR*** は「HBRUSHを直接返さなければならない」(DWL_MSGRESULTは禁止)
だから64bitはINT_PTRじゃなきゃまずいんだよ。
HBRUSHの中身が64bitになる実装は存在しないとかいうのは無しね。

If the dialog box procedure processes a message that requires a
specific return value, the dialog box procedure should set the
desired return value by calling
SetWindowLong(hwndDlg, DWL_MSGRESULT, lResult) immediately before
returning TRUE. Note that you must call SetWindowLong immediately
before returning TRUE; doing so earlier may result in the
DWL_MSGRESULT value being overwritten by a nested dialog box
message.
The following messages are exceptions to the general rules stated
above. Consult the documentation for the specific message for
details on the semantics of the return value.

WM_CHARTOITEM
WM_COMPAREITEM
WM_CTLCOLORBTN
WM_CTLCOLORDLG
WM_CTLCOLOREDIT
WM_CTLCOLORLISTBOX
WM_CTLCOLORSCROLLBAR
WM_CTLCOLORSTATIC
WM_INITDIALOG
WM_QUERYDRAGICON
WM_VKEYTOITEM

966 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 13:28:18 ]
だったら BOOL を INT_PTR にするという選択肢もあったはずでは
わざわざ 64-bit 対応の為に関数宣言を書き換える必要があるなんて馬鹿げている

967 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 13:36:16 ]
大量に使われているBOOL(ほとんどは1ビットで足りる用途)を根こそぎ64bitにしたらそれこそ無駄だろうに

968 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 13:49:14 ]
ダイアログプロシージャと違って、こっちが実装する関数ではないけれど、
VirtualAllocとかにも、大きさを指定する引数(今はSIZE_T)が
以前はDWORDだったとか似たような事例は他にもあるな。



969 名前:デフォルトの名無しさん [2008/03/03(月) 14:00:34 ]
猫でものページの第123章 メモリマップト・ファイルのソースをコピペして
実行したんですが「ファイルマッピングのオープン失敗」のメッセージが出て
最後まで実行できませんでした。どこが悪いのでしょうか教えてください。
ソースのページは
www.kumei.ne.jp/c_lang/sdk2/sdk_123.htm
でコピペして実行したcppファイルもあげときます
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6115.txt
すいませんが教えてください


970 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 14:04:35 ]
IDM_READ呼ぶ前にIDM_WRITE呼んでるのか?

971 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 14:53:13 ]
>>967
つ bool / BOOLEAN

972 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 15:05:23 ]
>>971
APIが使ってるBOOL書き換えてどうするんだよw

973 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 15:16:02 ]
>>972
何が言いたいのかよく分からん

そもそも引数や返値を int 型からポインタ型 (INT_PTR) に置き換えても何ら無駄にはならない

974 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 15:47:44 ]
しいて言えばスタック使用量倍増?

975 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 16:00:23 ]
戻り値はレジスタだろうからスタックは使わないんじゃない?

976 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 16:10:57 ]
引数もWin x64 ABIではスタックアクセスは64bit単位じゃなかったっけ?
何れにしろREXプレフィックスでコードサイズは変わるかも

977 名前:デフォルトの名無しさん [2008/03/03(月) 16:48:39 ]
Win32 API のヘルプとか網羅的なマニュアルなど、入手先はどこですか …

978 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 16:51:15 ]
>>977
>>1-2にもリンクがあるMSDNライブラリがそれ。



979 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 17:27:32 ]
>>975
それを変数に格納するってことじゃない?

980 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 18:39:39 ]
リソースのアイコンのバイナリを読み込んでchar[]型の配列に代入するにはどうすれば良いですか?

981 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 19:42:46 ]
LockResourceとかかな

982 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 22:33:40 ]
MENUITEMINFO mii;
ZeroMemory(&mii,sizeof(mii));
mii.cbSize=sizeof(MENUITEMINFO);
mii.fMask=MIIM_FTYPE;
mii.dwTypeData=L"ファイル";

HMENU menu=::CreateMenu();
::InsertMenuItem(menu,0,0,&mii);
::DrawMenuBar(hwnd);

ちゃんとウィンドウ表示してからこれしたらメニュー表示されない・・・なんで?

983 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 22:35:02 ]
SetMenuは?

984 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 23:36:08 ]
ベジエ曲線で囲んだ内部を塗りつぶしたいのですが無理ですか?
教えてくだちい><

985 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 23:42:30 ]
囲まれた図形の内部の座標に対してExtFloodFill






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<212KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef