1 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 03:44:55 ] スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。 やさしいお兄さんやお姉さんたちが答えてくれるかも。 過去スレ、関連リンクは>>2-5 くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn.microsoft.com/library/ )の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
321 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 12:16:39 ] LOGFONT構造体に値をセットして CF_INITTOLOGFONTSTRUCT フラグ入れればできないか? つか説明に書いてあると思うんだけど
322 名前:デフォルトの名無しさん [2007/03/30(金) 13:39:28 ] >>321 ありがとう。 確かにかいてあった・・・ >FlagsメンバにCF_INITTOLOGFONTSTRUCTを指定した場合は、この構造体で指定したフォントに最も近いフォントが選択されている状態でダイアログボックスが初期化されます。 これちょっと説明的にわかりずらかった・・
323 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 17:03:55 ] >>316 同一プロセス内のスレッド間通信なら、普通にポインタを渡すだけでいい。 (バッファの確保・更新・解放には同期処理が必要) ただし、リストボックスを作成したのがメインスレッドだと、リストボックスの管理は メインスレッドが行うので、リストボックスの動作そのものが問題になっていると 意味がない。この場合、ログ表示スレッドからSendMessage等をしても、それを実際に 実行するのはメインスレッドになる。 (ログ表示スレッドはメインスレッドがメッセージ処理を終えるまで待たされる) また、上手くスレッドを分けたところで、マルチプロセッサでなければ魔法のように 速くなるわけではないので、単純に処理が重いだけだとスレッドを分けても 全体の速度は変わらない。
324 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 17:08:28 ] 逆に、可能であれば速度低下を嫌うメイン処理こそワーカスレッドにするとよいのだけれど。
325 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 19:35:28 ] リストボックスをLVS_OWNERDRAWFIXED|LVS_NODATAで作成して オーナードローで描画、実データを持たさないようにすれば多少速くなるかな。
326 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 22:42:52 ] スレッドにしたところでリストボックスが著しく負荷高いってことには変わりがないと思うよ。 標準のコントロールは大量データを高速に処理できるようになっていないと思う。
327 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 23:19:35 ] 大量のデータを高速に処理するために標準機能として仮想リストがついているんだが。
328 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 05:01:29 ] 重くなるってリストに何件データ保持してるんだろ? 実際にそこまで過去のログを表示しておく必要があるか考えてみる …これは実装とは関係ないか
329 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 08:50:27 ] 3Dモデリングのライブラリってありますか? 街作ったり、車作ったりの
330 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 08:57:07 ] スレタイよく嫁
331 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 11:15:05 ] 自アプリのwebbrowserコントロール内でユーザが文字列を選択し、 コンテキストメニューから「コピー」を選んだとき、 クリップボードに書き込まれる前になんらかのイベントを 捕捉することはできますでしょうか? おねがいします。
332 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 17:04:43 ] >>331 ヒント:DDK
333 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 17:35:32 ] ヒント:DDR
334 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 17:38:25 ] ヒント:DDR2
335 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 17:46:45 ] ヒント:DDRMAX
336 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 17:48:55 ] EDORAM SIMM
337 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 18:04:40 ] EROIM ESSAIM
338 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 18:49:05 ] ┏┳┳┓ ハイ. ┏┳┳┓ ┏┫┃┃┃ 雑談は ┃┃┃┣┓ ┃┃┃┃┣┓ ここまで.┏┫┃┃┃┃ ┃ ┃┃┏━━━┓┃┃ ┃ ┃ 雑談 ┣┫ . ・∀・ ┣┫. STOP!┃ ┗━━━━┛┗┳━┳┛┗━━━━┛ ┏┻┓┃ ┏━┛ ┣┻┓ ┗━━━┫ ┗━┓ ┗━━━┛
339 名前:316 mailto:sage [2007/03/31(土) 22:49:05 ] 共有のメモリでリードライトポインタを制御するって意見が多いですね。 パイプにしとけば別プロセスにしたときにも使えるかなってのはあるんですが。。。 速度低下ってのは言葉足らずで、メイン処理を一定周期で 回したいのでログが多くなった瞬間にメイン処理が 待たされるのを避けたいという意味です。 最悪、ログのバッファオーバーフローもあり得るってことで。
340 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 22:55:04 ] ソケットにしておけば別マシンからでも使えるぞ。
341 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 23:38:49 ] DLLの中からCreateWindowでウィンドウを表示できますか? でもってその場合hInstanceにはHMODULEを渡すですか?
342 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 23:56:00 ] >>341 出来る。それでおk。つーか試した方が早くね?
343 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 23:57:42 ] ありがと
344 名前:デフォルトの名無しさん [2007/04/01(日) 00:15:48 ] しつもんがあります。 かなり大量のメモリ確保したいのですがGlobalLockは最高何個まで メモリ確保できますか?上限とかありますか?メモリが許す限り 無制限でしょうか? よろしくお願いします。
345 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 00:18:24 ] ヒント32ビットOS
346 名前:デフォルトの名無しさん [2007/04/01(日) 00:24:18 ] 2^32個ということですね ありがとうございました
347 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 00:27:19 ] ポインタやハンドルは4バイトだから それを記録する変数のために(2^32)*4を引くのを忘れるなよ。
348 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 00:31:26 ] SysListView32で「キーボードカーソル」 の現在位置の取得及び設定はどうやるのですか? ウィンドウの中で点線で囲まれていて、 Ctrl + 上下キーで移動する部分です。
349 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 00:54:39 ] >>344 >>346 Win32では、基本的にリニアアドレス空間の半分をシステムが持っているので、 実際にユーザが使えるのは理論上2^31Byte、つまり2GiB。 ただしNT系ではリンク時の/LARGEADDRESSAWAREと boot.iniの/3GBオプションにより、3GiBまで広がる。 /LARGEADDRESSAWARE付けた32ビットEXEをWin64で動かしたら4GiBまでいけるという話もある。 実際にはそこからEXE/DLL、つまりコードやリソース、 それにスタックなどの分も差し引かれるのでもう少し減る。 勿論空き仮想メモリの量が実際的な上限。 ところで1度に1MiB以上の確保するときにはVirtualAllocが推奨されている。 msdn.microsoft.com/library/ja/jpmemory/html/_win32_globalalloc.asp msdn.microsoft.com/library/ja/jpmemory/html/_win32_virtualalloc.asp
350 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 01:06:56 ] GiBってなんだ
351 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 01:13:44 ] >>350 ttp://hwb.ecc.u-tokyo.ac.jp/current/4857422FBEF0CAF3A4C8C9E4B9E6B2BD2FC3B1B0CC.html
352 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 02:13:53 ] MiBはあちこちで記憶を消して回るやつらのことだろ
353 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 04:11:05 ] >>352 DELIVER THE GALAXY OR EARTH WILL BE DESTROYED. SORRY!
354 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 04:13:49 ] ウィルスミスカコイイ
355 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 05:05:59 ] virus miss?
356 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 08:44:47 ] 32ビットでもWindows Server 2003 R2 Datacenterなら128GBまでOK。 Windows 2000 Datacenter Serverでも64GB
357 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 09:03:57 ] 知識としては良いのかも知れんが 本当に2GBのメモリを要求するようなプログラムは 設計から間違ってる気がする
358 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 10:38:31 ] 科学計算やるソフトなら本当に2GBまで使ったりするけどね〜
359 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 10:54:45 ] 32bitのWindowsでやるようなことじゃないな。
360 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 11:00:23 ] >>331 IHTML*Events::oncopy() 書き込み前か書き込み後かは知らん
361 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 11:10:13 ] >>356 1プロセスは4GBまでだろ
362 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 11:11:01 ] タスクトレイのアイコンはウィンドウがないと作れないの?
363 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 11:21:29 ] >>361 志村、AWE、AWE >>362 ウィンドウがないとタスクトレイメッセージが受け取れない
364 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 11:21:46 ] >>361 AWEとか抜け道はあるだろ。
365 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 11:25:33 ] >>359 修士論文ならそれでもなんとかなる@理論化学
366 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 12:42:14 ] >>362 っ コールバック関数
367 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 13:38:48 ] Shell_NotifyIconにもNOTIFYICONDATAにも コールバック関数を指定する所は見当たらんが
368 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 14:27:23 ] プロフィールなどに Microsoft MVP for Windows SDK とか書いてる人がいるんですが、どう言う意味なんでしょうか?
369 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 14:29:41 ] MVPって(藁) コピペ2回目 pc11.2ch.net/test/read.cgi/tech/1175087786/
370 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 16:24:12 ] しっ、見ちゃいけません
371 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 18:05:11 ] クライアント領域の更新にInvalidateRect(hWnd,NULL,TRUE);を使っているのですが画面がちらつきまくります。 他に良い方法はないでしょうか?
372 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 18:12:03 ] InvalidateRect(hWnd,NULL,FALSE);
373 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 18:23:08 ] >>372 ありがとうございます。 マシにはなりましたが書き直す量が多くなって間隔が短くなるとどうしてもちらつくもんですね……
374 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 18:39:51 ] >>373 背景を消す 新しいのを書く これを繰り返すからちらつくんだよ。 WM_ERASEBKGNDが呼ばれているなら何もせずreturnする。 ダブルバッファリングをつかう。 方法は検索すれば見つかると思う。 要するにメモリ上で背景や絵を描画して その完成させた絵をウィンドウに描画する。
375 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 21:36:17 ] カスタムリソースのPNGをHBITMAPで読み出してBITMAPと同じように扱うにはどうすればいいのでしょうか? PNG GDI+ libpng カスタムリソース等であらかたググってみましたが理解できませんでした。 hp.vector.co.jp/authors/VA016379/cpplib/libpng.htm も試してみましたがlibpng.libに変な部分があるという旨のエラーが出て(bcc32)コンパイルできませんでした。 うぐぅ
376 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 21:45:22 ] 全然確認してないけど後者はマングリの問題な気がする
377 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 21:50:16 ] >>375 エラーはコピペしろ。エスパーに期待するな。 だけど俺も>>376 に一票。 そのlibpngもbccでビルドしたのか?
378 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 21:59:06 ] Error: 'C:\PROGRAM FILES\BORLAND\BCC55\LIB\LIBPNG.LIB' contains invalid OMF record, type 0x21 (possibly COFF) です。すいません。 ビルドは説明通りVC++EEでやりました。それがいかんのですね。 bccならどうコンパイルしていいのかがわからなかったもので。
379 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:00:48 ] >>378 っ coff2omf.exe
380 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:04:12 ] 逆にお前が書くプログラムもVC++でコンパイルすればいい。
381 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:13:13 ] >>379 コンパイルはうまくいったみたいなのでこれから実際にloadpngが使えるか試してみます。 >>380 猫で始めたんですがVC++の使い方がよくわからないんですよね。 PSDKのインストールまではやってみたんですがコンパイルもエラーでまくるし……
382 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:23:59 ] プログラム→Visual C++ 2005 Express Edition→Visual Studio Tools→Visual Studio 2005 コマンド プロンプト コンパイラのコマンド名はbcc32ではなく、VC++ではcl。これでVC++コンパイラが使える。 コンパイラオプションも色々違うが、MSDN2を見てくれ。
383 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:26:56 ] 連投すいません。 プログラム内で hBmpBackGround = LoadPng("./images/background.png"); 記述したところ Error: 外部シンボル '_png_create_read_struct' が未解決(D:\MY DOCUMENTS\VISUAL STUDIO 2005\PROJECTS\****.OBJ が参照) などのエラーが16個出ました。 そのままloadpng.cppをコンパイルすると 警告 W8017 loadpng.cpp 1: マクロ 'STRICT' の重複定義 エラー E2109 loadpng.cpp 123: 許されない型(関数 LoadPng(const string &) ) エラー E2108 loadpng.cpp 124: typedef 'png_color' の使い方が間違っている(関数 LoadPng(const string &) ) とかforループの行に対して 警告 W8008 ****.cpp 432: 条件が常に真(関数 ***() ) が出るので1、4、11行目はコメントアウトしています。 他の必要なファイルは***.cppと同じディレクトリです。画像は./images/以下にあります。
384 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:29:28 ] >>382 bcc32もVisual Studio 2005 コマンド プロンプトから動かしているんですが、 C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\windows.h(28) : warning C4068: 不明なプラグマがありました。 C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\windows.h(200) : fatal error C1083: include ファイルを開けません。'windef.h': No such file or directory というエラーが出てコンパイルできないので仕方なくbccを使ってます……
385 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:44:11 ] 英語だからって条件反射でエラー文読むの拒否してないか?
386 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:47:03 ] >>385 ではなくて、自分の作ったファイルならともかくVCの用意してるファイルでのエラーなんかどう対処すればいいんだ…… ってのとマイクロソフトへの不信感から勝手にお手上げしてる感じですね……
387 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:48:08 ] はあ?
388 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:51:08 ] 面白くなってまいりました
389 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:55:06 ] >>384 なぜbcc32でVCのインクルードフォルダが現れる?
390 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:56:27 ] 1つめは対処法がわからないのでとりあえず置いておいて、 2つめに関してはPSDKのincludeにあったものをVCのディレクトリにコピーしました。 とりあえずC1083になるファイルは全部コピーしたのですが C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\xlocale(326) : warning C4530: C++ 例外処理を使 っていますが、アンワインド セマンティクスは有効にはなりません。/EHsc を指定してください。 d:\my documents\visual studio 2005\projects\nyaopuyo\loadpng.cpp(121) : error C2664: 'memset' : 1 番 目の引数を 'std::_Vector_iterator<_Ty,_Alloc>' から 'void *' に変換できません。(新しい機能 ; ヘルプ を参照) with [ _Ty=png_color, _Alloc=std::allocator<png_color> ] この変換を実行可能なユーザー定義変換演算子がないか、または演算子を呼び出せません。 等のエラーが多数出ます。
391 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:57:19 ] >>389 あ、それはVC++コマンドからclでコンパイルしたときのものです。
392 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:01:03 ] >>384 > bcc32もVisual Studio 2005 コマンド プロンプトから動かしているんですが エラーメッセージの内容から言って、それはVC++のclコンパイラが出しているものだ。 bcc32じゃない。 それにしても、clがwindows.hを読んでunknown pragmaとか、 windef.hが無いだとか、明らかにおかしい状態になっているな。 インストールミスかなにかじゃないのかな。あるいはウィルスにでも 食い荒らされたか。
393 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:02:40 ] >>390 C4530はエラーではなくワーニングだが(それぐらいは区別しろ、頼むから) clに-GXオプションを与えればよい。 2番目はあんたのユーザコードloadpng.cppの問題だろ。
394 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:07:32 ] >>390 >memset(vPalette.begin(), 0, nPal * sizeof png_color); こんなことをやっている糞コードのようだな。 こんなコードはドブに捨ててしまえ……と言いたいところだが、とりあえず vPalette.begin -> &vPalette[0] とでも書き換えるんだな。
395 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:10:41 ] >>390 コピーする必要は無い。 単にPlatfrom SDKのIncludeフォルダをインクルードディレクトリに追加すれば十分だ。
396 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:11:39 ] >>393 -GXよりも警告メッセージのとおり/EHscがお勧め。 VC++ 8からGXは推奨しないというような警告が出るようになったはず。
397 名前:デフォルトの名無しさん [2007/04/01(日) 23:15:04 ] コンパイルが通ったら今度は「うまく動きません。どうすればいいんでしょうか?」と長いソースを張り付ける予感。 しかし、画像のロードとセーブだけならもっと簡単なライブラリがあるんだけどなw
398 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:15:27 ] >>390 2番目のはイテレータとポインタをごっちゃにしているのが悪い。 イテレータ⊇ポインタだが、逆は成り立たない。 std::vector<png_color> v;というのがあったとしたら、 vの先頭要素へのポインタは&v[0]で取得できる。 memsetを使わずに、std::fill使えとか、vectorのメンバでどうにかしろとも言えるが。
399 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:19:10 ] みなさんありがとうございます。+゚:。(つД`)*.゚。 >>392 自分でincludeディレクトリいじったことはもちろん無いし、ウィルスも恐らく無かったので インストールミスなんでしょうかね…… >>393 >>396 仰る通りで申し訳ないです。/EHscでコンパイルを試みました。 >>394 3箇所書き換えたらエラーが loadpng.cpp(121) : error C2064: 0 引数を取り込む関数には評価されません。 に変わりました。 >>395 そうだと思ったんですがその方法を調べるとまた時間がかかりそうだったのでその場しのぎの苦肉の策ということで……
400 名前:デフォルトの名無しさん [2007/04/01(日) 23:23:15 ] >カスタムリソースのPNGをHBITMAPで読み出してBITMAPと同じように扱うにはどうすればいいのでしょうか? >PNG GDI+ libpng カスタムリソース等であらかたググってみましたが理解できませんでした。 この質問を自分もしたかったので、成り行きに注目していたんだが。。。
401 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:26:04 ] >>399 vPalette.begin() -> &vPalette[0] ↑ かっこぬけてはるみたいやね。 もう一つも同じ要領。
402 名前:394 mailto:sage [2007/04/01(日) 23:26:07 ] >>399 悪い悪い、 &vPalette[0]()にしちゃったのか? 正しくは、 vPalette.begin() -> &vPalette[0] だ。
403 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:31:35 ] コンパイルはできてオブジェクトファイルまでは作成できました。 ライブラリが見あたらないと出たのでSDKから根こそぎコピーしました。 MSVCRT.lib(MSVCR80.dll) : error LNK2005: _abort は既に LIBCMT.lib(abort.obj) で定義されています。 LINK : warning LNK4098: defaultlib 'MSVCRT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。 error LNK2019: 未解決の外部シンボル __imp__ReleaseDC@8 が関数 "struct HBITMAP__ * __cdecl LoadPng(中略) で参照されました。 等のエラー、警告が山ほど出てきました…… 根こそぎコピーがマズかったのでしょうか。
404 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:32:24 ] memset(&vPalette, 0, nPal * sizeof png_color); もしこう書いているのであれば、単にvPalette.resize(nPal)で十分なはず。 png_colorはどうせただのPODな構造体だろ。 デフォルト初期化と0クリアは同じような結果になるはず。
405 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:35:23 ] >>400 いやはや実は俺もなんだ・・・
406 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:36:17 ] もう働きたくない
407 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:43:26 ] つうか>>375 のリンク先のLoadPng()って、ファイルからロードする仕様じゃん。 カスタムリソースをロードしたいんじゃなかったの? つうかVC++持ってるんなら素直にCImage使えやってのは禁句か。 GDI+が対応してるフォーマット(PNGを含む)は全対応だし、リソースからの ロードも出来るぞ。 atlimage.hな。
408 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:44:39 ] Express EditionにはATLないだろ。
409 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:47:30 ] ああ、Express Editionか。これは失礼。
410 名前:375 mailto:sage [2007/04/01(日) 23:53:23 ] >>407 カスタムからロードしたかったんですが、できるかどうかわからなかったのでとりあえずやってみようって感じです。 で、できないんですか……残念です。 VC++はウィンドウ表示するだけのプログラムすらコンパイルできなかったので(↑でコンパイルまでは解決)bccに乗り換えてました。 本格的にやりたいので製品版も買おうと思うんですが、製品版も今のような調子だったりしないか怖くて手が出ません。 あと、EEでも猫の本とだいぶ違っているし(猫のが古いんだと思いますが)、C++はまだ始めたてだったりするのでそれも手が出ない理由です。 ちなみに製品版買うならVisual Studio 2005 Standard Edition(Academic Edition)ですかね? やりたいことはWINAPI(将来的にはDirectXでも)でゲーム制作です。
411 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:54:54 ] libpngはPNG_SETJMP_NOT_SUPPORTEDを指定してビルドしない限り、 longjmp()でエラーレポートを行う。 >>375 のコードはsetjmp()を呼んでいないようだから、多分全く エラーに対応していないな。 もっとマシなコードを探せ。 setjmp(), longjmp()である以上、デストラクタは実行されないから、 その区間でvectorなんぞを使うのは論外だ。 ま、CreateDIBSection, png_create_read_structあたりのキーワードで google codesearchでもすれば、色々引っかかるだろ。
412 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:58:56 ] >>410 > 本格的にやりたいので製品版も買おうと思うんですが、製品版も今のような > 調子だったりしないか怖くて手が出ません。 PlatformSDKはEnterprise Editionではそもそも付属してなくて自分で別途 インストール&環境設定しなきゃいけないからな。 あんたがインストールにミスったってだけの話だろ。 Visual Studioの品質の問題じゃない。 あんたに問題解決能力がないだけの話。それは、どんな製品を使おうが変わらないよ。
413 名前:348 mailto:sage [2007/04/02(月) 00:02:25 ] おながいします・・・orz
414 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:04:50 ] >>411 VC++ならSEHとの絡みでsetjmp/longjmpでも自動変数のデストラクタが呼ばれるはず
415 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:05:28 ] お前らスルー汁
416 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:06:03 ] ていうかもう、API全然関係ないなwww
417 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:06:38 ] >>414 へぇ。それはいいことを聞いた。教えてくれてありがとう。 ま、それに依存したコードは書く気になれないが……
418 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:07:01 ] 何だこのスレの伸び具合は
419 名前:375 mailto:sage [2007/04/02(月) 00:08:05 ] >>411 ちょっくら頑張ってきます( `・ω・´) >>412 了解、明日にでもVCとSDK再インスコしまつ。 >>416 サーセンwww
420 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:12:50 ] Platform SDKよりもWindows SDKのほうがお勧め。 スタートメニューの中にVS 2005への設定を行うショートカットがある。 それを実行するだけで、VSコマンドプロンプトからもIDEからも インクルードパスの設定を含めWindows SDKを使用できる状態になる。
421 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:19:56 ] 開発環境すらちゃんと構築できないような奴には無理ということで