Win32API質問箱 Build91
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/11/08(月) 02:01:42やさしいお兄さんやHなお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!
■過去スレ
Win32API質問箱 Build90
http://hibari.2ch.net/test/read.cgi/tech/1287205063/
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
- Win32API質問箱 wiki
http://wiki.livedoor.jp/program1/d/FrontPage
過去スレはwikiから探してください。
0175デフォルトの名無しさん
2010/11/13(土) 21:08:13いや、Releaseビルドですよ。Win7というのが関係しているのかもしれません
0176デフォルトの名無しさん
2010/11/13(土) 21:10:440177デフォルトの名無しさん
2010/11/13(土) 21:31:24http://codepad.org/MUwPe4oA
0178デフォルトの名無しさん
2010/11/13(土) 21:31:250179デフォルトの名無しさん
2010/11/13(土) 21:33:230180デフォルトの名無しさん
2010/11/13(土) 21:37:090182デフォルトの名無しさん
2010/11/13(土) 21:42:130184デフォルトの名無しさん
2010/11/13(土) 22:04:51FatalAppExit 関数は、常にアプリケーションが使用したメモリを解放したり、ファイルを閉じるとはかぎりません。
Windows の一般エラーの原因になることもあります。アプリケーションで予期しないエラーが発生した場合は、
このアプリケーションが使用するメモリをすべて解放し、メインメッセージループから戻って終了するようにします。
0185デフォルトの名無しさん
2010/11/13(土) 22:08:38でも2GB確保しようとして足りなくて失敗したとかなら正常終了に持ち込んだ方がいい
0187デフォルトの名無しさん
2010/11/13(土) 22:43:350188デフォルトの名無しさん
2010/11/14(日) 02:15:590189デフォルトの名無しさん
2010/11/14(日) 02:20:29俺も普通の new で起きる bad_alloc なんかは、チェックすらしてない。
巨大なファイルをメモリにマップするとか、VirtualAllocで数百MBのメモリを
確保するとかだったらチェックするけど。
0190デフォルトの名無しさん
2010/11/14(日) 02:27:20日本語MSDNなんか引用すんな。低能。
Remarks
An application calls FatalAppExit only when it is not capable of
terminating any other way.
0191デフォルトの名無しさん
2010/11/14(日) 03:08:14>FatalAppExit 関数は、常にアプリケーションが使用したメモリを解放したり、ファイルを閉じるとはかぎりません。
他のプロセスが参照カウンタを増やしているとか、そういうオチだね。
何の問題も無い。
0192デフォルトの名無しさん
2010/11/14(日) 03:28:14全て解放される。これジャングルの掟。
0193デフォルトの名無しさん
2010/11/14(日) 03:44:15>>184はそれも怪しいって言ってるんじゃないかい
プロセスの正常な終了手続き取らないとか
0194デフォルトの名無しさん
2010/11/14(日) 07:55:42英語版(>>190)にはそんな事は書いていない。日本語版(>>184)が嘘。
低能はプログラミングすんな。
0195161
2010/11/14(日) 08:44:26さっさとプログラム終了させなきゃいけないのかと思ってたんだがそうでもないのか?
0196デフォルトの名無しさん
2010/11/14(日) 09:23:21CloseHandle
DestroyWindow
PostQuitMessage
ExitProcess
このあたりが全部失敗するような状況のことじゃないか?
0197デフォルトの名無しさん
2010/11/14(日) 10:50:06今は普通にLoadLibraryで読み込んでるんですが、
ファイルからの読み込みしか対応してないようです。
これをメモリから読み込むようにできませんか?
今はこのようになってるんですが、
スクリーンセーバーなのでファイルをまとめたいんです。
urara.scr スクリーンセーバー
imgloader.dll 画像ローダー
voiloader.dll 音声ローダー
Bitmapなどの素材はリソースにおけるんで、
urara.scrの中に格納できたんですが、
imgloader.dllなどは格納はできるんですが、
LoadLibraryはリソースに対応してないようです。
0198デフォルトの名無しさん
2010/11/14(日) 12:01:05LoadLibraryはリソースに対応してるようですが、
対応していないと思う理由を考えてみたのですが、
やはり意味不明ですね。
0199デフォルトの名無しさん
2010/11/14(日) 14:52:38パスって取得できないのかな・・・
0200デフォルトの名無しさん
2010/11/14(日) 14:58:46ttp://ruffnex.oc.to/kenji/text/load_dll/
ここ読めば出来るような気がする
0201デフォルトの名無しさん
2010/11/14(日) 15:25:18すいませんプログラマ夜逃げで焦ってました。
>>200
ありがとうございます参考になりました。
0202デフォルトの名無しさん
2010/11/14(日) 17:10:38http://msdn.microsoft.com/en-us/library/ms679338%28v=VS.85%29.aspx
This function should only be used as a last resort,because it may not free the memory or files owned by the application.
書いていない=解放される、ではないよ
MSの場合は書いてあっても信用できないけどねw
0203デフォルトの名無しさん
2010/11/14(日) 17:40:18ttp://wisdom.sakura.ne.jp/system/winapi/win32/win13.html
にあるやつエラーになるんですがどうしてですか?
win32api.c(14): error C2065: 'LlpcsWnd' : 定義されていない識別子です。
win32api.c(14): error C2223: '->lpszName' : 左側が構造体か共用体に対するポインターではありません。
win32api.c(14): warning C4047: '関数' : 間接参照のレベルが 'LPCWSTR' と 'long' で異なっています。
win32api.c(14): warning C4024: 'MessageBoxW' : の型が 3 の仮引数および実引数と異なります。
win32api.c(14): error C2198: 'MessageBoxW' : 呼び出しに対する引数が少なすぎます。
0204デフォルトの名無しさん
2010/11/14(日) 17:44:58BCC使ってるけどコピペで問題なかった。
もっかい見直したら?
0205デフォルトの名無しさん
2010/11/14(日) 17:51:59Unicodeビルドやめてマルチバイトにすればビルドは通るだろうが、
今時そういうことをするのはちょっと。
0206デフォルトの名無しさん
2010/11/14(日) 18:03:22横からだけど出来ました
ありがとうございました
0207デフォルトの名無しさん
2010/11/14(日) 18:05:15BCCでできました。報告ありがとうございます
>>205
やはりサイトではなく本を買ったほうがいいでしょうか?
0208デフォルトの名無しさん
2010/11/14(日) 18:05:19エラー出ないように書き直すと勉強になるよ
0209デフォルトの名無しさん
2010/11/14(日) 18:08:52これ結構楽しいな
ウィルススキャンにも引っかからなかった
0210デフォルトの名無しさん
2010/11/14(日) 18:17:16ビルド通らないって入力ミスかなんかじゃないのか
0211デフォルトの名無しさん
2010/11/14(日) 18:17:37MessageBoxWって書いてあるのに気づかなかったとか死にてぇ・・・・・・
本は2004年5月の出版。7年ほど前の本だがどうするよ?
0212デフォルトの名無しさん
2010/11/14(日) 18:17:58> TEXT(lpcsWnd->lpszName)
これはねーわ(;´Д`)
0213デフォルトの名無しさん
2010/11/14(日) 18:18:030214デフォルトの名無しさん
2010/11/14(日) 18:23:02ここはどうするべきなんでしょうか?
0215デフォルトの名無しさん
2010/11/14(日) 18:27:57素直に渡せよ
0216デフォルトの名無しさん
2010/11/14(日) 18:28:08lpcsWnd->lpszNameにすればコンパイルは通ると思われる。
TranslateMessage()呼んでなかったりとかいろいろとアレなサンプルだな・・・
0217デフォルトの名無しさん
2010/11/14(日) 18:31:42ありがとうございます
>>211
ちょっと新しい本見つけて買おうと思います
0218デフォルトの名無しさん
2010/11/14(日) 18:34:200219デフォルトの名無しさん
2010/11/14(日) 18:39:34まずは自分の価値基準を提示しろ。
0220デフォルトの名無しさん
2010/11/14(日) 18:51:52プログラムの本はあんま買わないからわからん
サイトなら入門のころお世話になった苦Cがけっこう良かった、と思う
0221デフォルトの名無しさん
2010/11/14(日) 18:53:160222デフォルトの名無しさん
2010/11/14(日) 20:24:38IDEに頼ってないところだけは評価してもいい
0223デフォルトの名無しさん
2010/11/14(日) 20:38:230224デフォルトの名無しさん
2010/11/14(日) 22:47:26鏡をカメラで撮って写真にする感じだよー って一言説明あれば
分かりやすいのになー
0225デフォルトの名無しさん
2010/11/14(日) 23:04:58ポインタを単にポインタとして理解できない初心者は門前払いすべし。
0226デフォルトの名無しさん
2010/11/14(日) 23:08:32最近理解できたんだね。良かった良かった
0227デフォルトの名無しさん
2010/11/14(日) 23:16:040228デフォルトの名無しさん
2010/11/14(日) 23:29:290229デフォルトの名無しさん
2010/11/14(日) 23:31:37ちゃんとコンピューター勉強したい人にとっては妨げになるだけ
0230デフォルトの名無しさん
2010/11/15(月) 00:23:42Win32APIスレで何気取ったこと言ってるんだ?
0231デフォルトの名無しさん
2010/11/15(月) 04:37:090232デフォルトの名無しさん
2010/11/15(月) 06:38:490233デフォルトの名無しさん
2010/11/15(月) 07:27:470234デフォルトの名無しさん
2010/11/15(月) 19:24:160235デフォルトの名無しさん
2010/11/15(月) 22:08:230236デフォルトの名無しさん
2010/11/16(火) 09:18:150237デフォルトの名無しさん
2010/11/16(火) 19:31:560238デフォルトの名無しさん
2010/11/16(火) 19:37:42FormatMessageWでHRESULTの説明を取得しようとしたら
↓の読み込み専用のなんとかエラーが出るんだけどどうすればいい
(裏) [一本道] 真中ゆり&大城楓 ペロリンピックpart1 エッチなスケートリンク (パイパン・レズ) [無修正] (704x396 Mpeg4v2 2820Kbps 29.97fps 128Kbps 48KHz J-Stereo 1h01m31s).avi
0239デフォルトの名無しさん
2010/11/16(火) 19:41:11PCをリカバリー
0240デフォルトの名無しさん
2010/11/16(火) 19:49:510241デフォルトの名無しさん
2010/11/16(火) 19:51:21zipでくれ
0243デフォルトの名無しさん
2010/11/16(火) 20:02:30元は面白いの?
0244デフォルトの名無しさん
2010/11/16(火) 20:10:45同じぐらいつまらん
昨日あたりに、関係ないスレにコピペされまくってたが
0245デフォルトの名無しさん
2010/11/16(火) 20:23:130246デフォルトの名無しさん
2010/11/16(火) 21:15:080247デフォルトの名無しさん
2010/11/16(火) 22:34:18既存のDIBからDDBを生成する方法ないでしょうか。
(DDBを生成した後もDIBとして使用可能なもの)
DIBSectionは既存のDIBを使用できないし、CreateDIBitmapは
DDBを生成した後は元のDIBとは別メモリが割り当てられてしまいます。
0248デフォルトの名無しさん
2010/11/16(火) 22:44:010249デフォルトの名無しさん
2010/11/16(火) 22:45:320250デフォルトの名無しさん
2010/11/16(火) 22:47:49たぶん1度DIB作ってから再度作るのが面倒くさいから
誰か僕ちゃんにおあつらえ向きの関数知りませんか〜ってことだと思うで
0251247
2010/11/16(火) 23:40:44かつ、速度が必要なαブレンド等のピクセル操作はメモリアクセスで済ませたい。
この為、unsigned intの配列とDIBがシームレスに直結してる必要があります。
さらに、GDI操作が必要なくなったらHBITMAPは解放したいです。
(この際unsigned intの配列は解放されてはいけない)
そしてまた必要なときにDIBを生成というサイクルを想定しています。
0252247
2010/11/16(火) 23:44:21x DIB
o DDB
0253デフォルトの名無しさん
2010/11/16(火) 23:48:03DIBセクションで確保されたメモリを使えば解決だな。
この状態で直接メモリアクセスできるから、
わざわざ解放する理由も無くなるし。
0254デフォルトの名無しさん
2010/11/16(火) 23:49:57使ったことないが
0255247
2010/11/16(火) 23:54:20Win95で動かす場合、リソースに64k個制限があるため不要なDIBセクションの
生成は控えたいのです。
(ゲーム用途に使用する場合細かい画像を大量に取り扱う事があってリソースを圧迫してしまいます)
そのため、通常は配列で画像処理を行い、必要なときのみアダプタ的なイメージで
配列にかぶせGDIで描画を行いたいという背景があり、最初からDIBセクションを使用する事ができません。
それでこの質問をするに至りました。
0257デフォルトの名無しさん
2010/11/17(水) 00:28:560258デフォルトの名無しさん
2010/11/17(水) 00:35:59最終的に画面に出力する処理以外は、一切GDIは不要だな。
よって、リソースの個数制限に悩まされる事は全く無いな。
PentiumIII/Athlon以前の環境なら、多少検討する価値があるかもしれないが。
0259デフォルトの名無しさん
2010/11/17(水) 00:43:220260デフォルトの名無しさん
2010/11/17(水) 00:56:580261デフォルトの名無しさん
2010/11/17(水) 01:04:54メモリが足りなかったら処理速度でまかなうとか。
処理速度上げるために別に計算してテーブルにするとか。
描画時だけ妥協してCreateDIBitmapあたりでHBITMAPにしてそれ以外は配列で何とかすればいいと思うけど。
あと、処理速度が遅いときの基本の描画はダーティレクトだと思う。異論は認める。
あ、思い出した。SetDIBitsToDeviceっていう描画関数もあるよ。
0262デフォルトの名無しさん
2010/11/17(水) 01:42:240263デフォルトの名無しさん
2010/11/17(水) 02:28:140264デフォルトの名無しさん
2010/11/17(水) 02:33:130265261
2010/11/17(水) 10:08:13ttp://www1.axfc.net/uploader/File/so/54256.zip
DIBの8bitデータなのは別に何かの制約ではなく、データ作るの楽だから。
できれば、こんな感じのデータはクラスにして使ったほうが色々便利でいいと思う。
基本的に生データをさらしておくのはお勧めしない。
あと、これvc10のプロジェクト作成ウィザードで吐いたやつのWndProcだけ変更したやつだから要点はWindProcに集約されてるよ。
描画関数はMSDNで伸ばすほう伸ばさないほうの両方の互換性がWin95になってたから大丈夫だと思うんだけど・・・。
0266デフォルトの名無しさん
2010/11/17(水) 10:44:220267デフォルトの名無しさん
2010/11/17(水) 10:50:370268デフォルトの名無しさん
2010/11/17(水) 11:04:570269デフォルトの名無しさん
2010/11/17(水) 11:09:50サンプルコードみたいなのないでしょうか?
0270デフォルトの名無しさん
2010/11/17(水) 11:22:11ttp://d.hatena.ne.jp/kiwamaru/20090121/1232524352
最近はばるーんちっぷすっていうみたいだな。
0271デフォルトの名無しさん
2010/11/17(水) 11:56:040272デフォルトの名無しさん
2010/11/17(水) 12:22:530273デフォルトの名無しさん
2010/11/17(水) 13:21:15ハゲですねわかります
0275デフォルトの名無しさん
2010/11/17(水) 16:53:13mingw32 3.4.4 (結構古い) の g++/ld でコンパイル/リンクしたのですが no problem でした
■ このスレッドは過去ログ倉庫に格納されています