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


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

Win32API質問箱 Build51



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 ]
開発環境すらちゃんと構築できないような奴には無理ということで






[ 続きを読む ] / [ 携帯版 ]

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

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