1 名前:デフォルトの名無しさん [04/07/29 11:06] 機能無制限で使える本格的な無料コンパイラBC++についてのスレ。 ダウンロードはこちらから。 ↓ www.borland.co.jp/cppbuilder/freecompiler/ 前スレ part3 > pc5.2ch.net/test/read.cgi/tech/1054390397/ part2 > pc2.2ch.net/test/read.cgi/tech/1030493157/ part1 > pc3.2ch.net/test/read.cgi/tech/1002377328/
284 名前:デフォルトの名無しさん mailto:sage [04/11/10 23:12:47] >>283 レジストリに書き込む。ここで便乗して質問したいけど、 再起動無しで以降の起動プロセスに繁栄させる方法がわかんない。
285 名前:283 mailto:sage [04/11/11 00:18:25] >>284 コマンドプロンプトを起動するときに、レジストリの内容が コマンドプロンプト内の環境変数領域に登録されます。 やりたいのは、コマンドプロンプトで起動されたプログラムから コマンドプロンプト内の環境変数領域を書き換えたいんです。 だからレジストリに書くのは無しの方向で。
286 名前:デフォルトの名無しさん mailto:sage [04/11/11 00:36:24] www.microsoft.com/japan/developer/library/jpwinpf/_win32_setenvironmentvariable.htm これとかじゃ駄目?よくわかんないけど
287 名前:デフォルトの名無しさん mailto:sage [04/11/11 01:16:09] 変数領域を書き換えた状態で子プロセスの起動じゃまずいのかな。 もしも親子じゃない別プロセスから環境変数のチートができたらセキリティの大穴で、 ディスク消去コマンドをcmd.exeにでもリネームしてパスを掛けられたらアウト。
288 名前:283 mailto:sage [04/11/11 01:27:07] >>286 だめだった。現在のプロセスでなく親プロセスのを変えられないと無理みたい。
289 名前:283 mailto:sage [04/11/11 01:33:04] >>287 あー、その絡みでできないようになってるのかな? 確かにコワイ。
290 名前:デフォルトの名無しさん [04/11/12 14:02:54] すみません、どうかお助け下さい。 「猫でもわかるC言語プログラミング」という本を見て勉強しているのですが あるソースをコンパイルしようとすると、以下のような文がでてコンパイルできません。 プロトタイプ宣言はしていますし、最後のエラーは意味すら分かりません。 一体どうすればよいのでしょうか? ------------------------------------------------------------------- C:\borland>bcc32 type03.c Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland type03.c: 警告 W8065 type03.c 26: プロトタイプ宣言のない関数 'menu' の呼び出し(関数 main ) 警告 W8065 type03.c 33: プロトタイプ宣言のない関数 'meibo_output' の呼び出し (関数 main ) Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: 外部シンボル '_meibo_output' が未解決(C:\BORLAND\TYPE03.OBJ が参照) ------------------------------------------------------------------- ■エラーが出るソース ・「猫でも〜」のP234〜238のソース type03.c ttp://49uper.com:8080/html/img-s/22577.zip ■環境 ・WinXP Home SP2 ・Borland C++ Compiler 5.5.1 以下のページを参考にデフォルトの場所にインストールし、動作テストでエラーなし ttp://www.m-n-j.com/town/internet_computer/makuzu/pgf/FreeProg-bcc551.html
291 名前:デフォルトの名無しさん mailto:sage [04/11/12 14:15:34] >>290 s/meido/meibo/
292 名前:290 mailto:sage [04/11/12 14:24:34] >>291 レスありがとうです。 えっと、すみません、それはどういう意味でしょうか?
293 名前:290 mailto:sage [04/11/12 14:41:47] ごめんなさい。>>291 の意味は分かりました。ありがとうございます。 …恥ずかしい… コンパイルはできたのですが、相変わらず 警告 W8065 type03.c 26: プロトタイプ宣言のない関数 'menu' の呼び出し(関数 main ) は出ます。もうちょっとソース眺めてみます。
294 名前:デフォルトの名無しさん mailto:sage [04/11/12 14:53:19] ちょっと質問いいですか? UNIX環境だと #include<eggx.h>のように指定すれば、グラフィックが 描けるじゃないじゃないですか。これをこのソフトで使いたい んですが何かいい方法ありましたら教えてくださいませ。
295 名前:290 mailto:sage [04/11/12 15:25:03] 報告です。 警告 W8065 type03.c 26: プロトタイプ宣言のない関数 'menu' の呼び出し(関数 main ) は調べてみたら分かりました。 ttp://wisdom.sakura.ne.jp/programming/c/c27.html プロトタイプ宣言を以下のように変更したら警告は出なくなりました。 × int menu(); ○ int menu(void); >>290 のソースは削除します。 今回は解決しましたが、まだまだ分からないことだらけです。 スレ汚しすみませんでした。
296 名前:デフォルトの名無しさん mailto:sage [04/11/13 04:23:34] >>293 C では int menu(); ではなく int menu(void); としないと 引数ゼロの関数を宣言したことにはなりません。
297 名前:デフォルトの名無しさん mailto:sage [04/11/13 05:03:56] >>294 eggxそのものじゃないけどGrWinをためしてみては? spdg1.sci.shizuoka.ac.jp/grwinlib/
298 名前:283 mailto:sage [04/11/13 19:16:21] いろいろ調べてみたけどわからなかった。 結局、プログラムでset文を実行するbatファイルを作って、 プログラム終了後にbatファイルを呼ぶようにしました。 スレ違い気味スマソ。
299 名前:デフォルトの名無しさん mailto:sage [04/11/14 21:31:46] なんかプログラムを実行すると一瞬開いてすぐ閉じるんですが。 これ仕様でしょうか。初心者は動体視力を鍛えることから始めろって意味でしょうか。
300 名前:デフォルトの名無しさん mailto:sage [04/11/14 21:36:27] とりあえず getch(); を最後に書いてみれ。 何かキーを押すまで消えない。
301 名前:デフォルトの名無しさん mailto:sage [04/11/14 21:40:29] >>300 なんか書く間もなく消えるんですが・・・
302 名前:デフォルトの名無しさん mailto:sage [04/11/14 21:42:14] ソースにですよ
303 名前:デフォルトの名無しさん mailto:sage [04/11/14 21:43:43] いや、なんていうか、それ以前に、コンパイラが一瞬で閉じるのでもうどうしたものかと
304 名前:デフォルトの名無しさん mailto:sage [04/11/14 21:44:51] コマンドプロンプトから実行しろ。
305 名前:デフォルトの名無しさん mailto:sage [04/11/14 21:46:09] ・・・コンパイラはダブルクリックして使うものじゃないよ 勉強は「猫でもわかるプログラミング」で
306 名前:デフォルトの名無しさん mailto:sage [04/11/14 21:47:53] ・・・わかりました。初心者以前の問題だったようで、どうもすいません
307 名前:デフォルトの名無しさん mailto:sage [04/11/14 21:50:57] ノシ<ガンガレ
308 名前:デフォルトの名無しさん [04/11/15 17:22:14] borland系特有の方言とかってありますか?
309 名前:本田 [04/11/16 00:45:57] >>308 VCLを呼び出すための方言がある。
310 名前:デフォルトの名無しさん mailto:sage [04/11/16 14:08:31] #pragma option pushもここだけじゃないか?
311 名前:デフォルトの名無しさん [04/11/16 23:38:53] BC++でDLLファイルはどうやって作るんですか?
312 名前:デフォルトの名無しさん [04/11/16 23:40:52] DLLファイル作る用のオプションを与える
313 名前:デフォルトの名無しさん mailto:sage [04/11/19 18:29:42] usr_vogel.at.infoseek.co.jp/Compiler/BCC/index.html
314 名前:デフォルトの名無しさん [04/11/20 12:02:25] bccはgccより最適化がpoorというのは本当ですか?
315 名前:デフォルトの名無しさん mailto:sage [04/11/20 13:09:16] VCTKがある今となっては存在価値無いと思うが。。。 まだOpenWatocomのほうがマシだし
316 名前:デフォルトの名無しさん mailto:sage [04/11/20 14:24:29] どうせうちのPCはVCTKを入れられない環境だよ…
317 名前:デフォルトの名無しさん mailto:sage [04/11/20 14:30:08] お手軽な上に日本語なんで 十分存在価値はある。
318 名前:デフォルトの名無しさん mailto:sage [04/11/20 17:10:53] 再起動なしでインストールからコンパイルまで可能なんで ネットカフェでプログラム作れるのはウマー。 サイズ小さいんで環境一式USBメモリでどこでもコンパイル。
319 名前:デフォルトの名無しさん mailto:sage [04/11/21 21:42:27] 落とせないのはなんでだろう。
320 名前:デフォルトの名無しさん mailto:sage [04/11/21 21:45:20] >>318 ネットカフェで何を作ろうとしているのか、気になる。。。
321 名前:デフォルトの名無しさん mailto:sage [04/11/21 22:40:31] キーロガー
322 名前:デフォルトの名無しさん [04/11/22 10:57:42]
323 名前:デフォルトの名無しさん mailto:sage [04/11/22 19:43:46] 作るよりダウンロードしたほうが早いだろう?
324 名前:デフォルトの名無しさん mailto:sage [04/11/26 10:14:57] Cソースをコンパイルしてエラーが一つあったのだが 警告が出すぎてエラー原因が見えないのだが、警告表示を消すコンパイルオプションってある?
325 名前:デフォルトの名無しさん mailto:sage [04/11/26 13:51:28] -w-
326 名前:デフォルトの名無しさん mailto:sage [04/11/26 13:53:44] >>325 ありがとう ご協力感謝する
327 名前:デフォルトの名無しさん mailto:sage [04/12/08 01:04:05] bccでinclude通るねえよ糞ッたれ・・・ と思ってcpadに移行したらすんなり通ったバンジャーイ
328 名前:デフォルトの名無しさん mailto:sage [04/12/08 05:56:21] インストーラがないと環境設定できない香具師多いなー
329 名前:デフォルトの名無しさん mailto:sage [04/12/08 11:55:43] 今時、「パス通せ」って言っても通じないからな。 それ以上に readme.txtを読むことも知らんし。
330 名前:デフォルトの名無しさん mailto:sage [04/12/08 13:33:04] 時代がちがうんだよ。
331 名前:デフォルトの名無しさん mailto:sage [04/12/08 14:40:10] bcc55が古いのだ
332 名前:デフォルトの名無しさん mailto:sage [04/12/08 18:58:58] setbccの後に再起動忘れてた orz
333 名前:デフォルトの名無しさん mailto:sage [04/12/08 19:50:04] >>329 そんなんで良くコンパイラ使うきになるなー 時代がちがうたって意味わからん おれはハードのことはわからんけど、ハンダごてで抵抗も つけられない奴が、まともにハード設計できると思えんよ そんな感じ
334 名前:デフォルトの名無しさん mailto:sage [04/12/08 21:27:30] 実験用具を自分で準備できない化学者みたいなもんだな。
335 名前:デフォルトの名無しさん mailto:sage [04/12/09 00:20:06] 「フーリエ変換」が積分だと知って驚く工学者かな
336 名前:デフォルトの名無しさん mailto:sage [04/12/09 00:20:30] 普通につかっててもパス通す機会なんてないからな。
337 名前:デフォルトの名無しさん mailto:sage [04/12/09 22:57:31] 文系SEってプログラミング知らなくてもソフトウェアの仕様決めてる人もいるんじゃないの?
338 名前:デフォルトの名無しさん mailto:sage [04/12/09 23:21:21] >>334 良い例 >>335 悪い例 >>336 例になっていない
339 名前:デフォルトの名無しさん mailto:sage [04/12/09 23:47:14] 3番目は余計だったな
340 名前:デフォルトの名無しさん mailto:sage [04/12/10 01:18:57] >>339 そんなことされると俺がオチになってしまう
341 名前:デフォルトの名無しさん mailto:sage [04/12/22 17:13:57] STLport を使っている方いますか? 既に使っている人がいれば設定方法など教えてもらえませんか? (Borland C++ 5.5.1 + BCC Developer, WinXP) STLport 4.6.2 をダウンロード、解凍フォルダの stlport を bcc32/Bin/bcc32.cfg のインクルードパスに追加してから、 make -f bcb55.mak すると「エラーE2268: 未定義の関数 '_vsnprintf'」でコンパイルに失敗. STLport の iostream の使用を諦めて stl_user_config.h で _STLP_NO_OWN_IOSTREAMS を有効にしてから、 #include <iostream> をインクルードすると、 「\stl/_alloc.h 341: 'allocator<_Tp>' と 'std::allocator<T>' の区別が曖昧」のエラーが連発, 解決のため _site_confit.h の _STLP_NO_OWN_NAMESPACE を有効にすると、 「\stlport\stl/_cwchar.h 87: 'mbstate_t' の宣言が複数見つかった」 など他多数のエラーが連発. とうまくいきません。何か根本的に使い方を間違っているのでしょうか。
342 名前:デフォルトの名無しさん mailto:sage [04/12/22 18:40:19] >>341 STLport本家のForumは読んでる? BCC5.5.1は、STLport4.5.3までしか入らないよ。それ以降はサポートしてないと 公式にコメントが書かれている。
343 名前:デフォルトの名無しさん mailto:sage [04/12/22 19:54:51] >>342 ありがとうございます、助かりました。 STLport4.5.3 を導入したら問題なくコンパイルも通りました。 4.6 は対応待ちですね。
344 名前:デフォルトの名無しさん mailto:sage [04/12/22 20:44:47] 待つんじゃない。君が対応させるんだ。
345 名前:デフォルトの名無しさん mailto:sage [04/12/22 21:00:34] STLportは使ったことないけど、BCCにvsnprintf/_vsnprintf自体はあるからなんとかなるんじゃないか、と言ってみる。
346 名前:デフォルトの名無しさん mailto:sage [04/12/22 22:14:55] >>345 STLportのソースやらmakefile一通り読んでみろよ。 「なんとかする」気力が失せるから・・・・
347 名前:デフォルトの名無しさん mailto:sage [04/12/22 22:29:01] 使いたい気持ち<なんとかする気力 なら仕方ないよね・・・
348 名前:デフォルトの名無しさん mailto:sage [04/12/28 12:45:53] コンパイルできねー
349 名前:デフォルトの名無しさん mailto:sage [04/12/28 13:01:40] www.borland.co.jp/cppbuilder/freecompiler/faq/bccfaq4.html
350 名前:デフォルトの名無しさん mailto:sage [04/12/28 14:02:54] path設定してもbcc32.cfg作ってもilink32.cfg作ってもコンパイルできねー
351 名前:デフォルトの名無しさん mailto:sage [04/12/28 14:16:51] ダブルクリックしてたら笑う bcc32.cfg.txtが出来てたら笑う
352 名前:デフォルトの名無しさん mailto:sage [04/12/28 15:20:41] 笑えないと思うぜ
353 名前:デフォルトの名無しさん mailto:sage [04/12/28 20:48:51] 質問させてください。 >>203 と同じ症状だったので、>>205 のリンク先からlibファイルを落としてコンパイルしたら コンパイラは通ったのですが、 完成したファイルを実行してみたところ、 「D3D9.DLLファイルがリンクしているエクスポートDDRAW.DLL:DdEntry21は見つかりません」 というエラーメッセージがでて実行できませんでした。 このような状況の対処方法をお教えください。 BCCでのDirectXプログラムについてわかりやすいサイトなどあわせてご教授願えれば幸いです。
354 名前:デフォルトの名無しさん mailto:sage [04/12/29 00:48:07] ttp://goldfly.ld.infoseek.co.jp/program/directx/bcc90b.html つか、BCCでDirectXは覚悟がいるし、調べ方も分からないなら ttp://www.geocities.co.jp/SiliconValley-SanJose/8134/ このへん使ったほうが幸せになれると思う。 開発停止してるけど、SimpleXあたりだとDirectX7レベルだったはずなので 何もせずに遊べるよ。中身は保証しないけど、導入だけなら ttp://www.geocities.jp/yuetake/ ここで充分かな… がんばるなら、 ttp://bcb-tools.com/Downloads.htm ここから dinput1.lib と dinput2.lib を落としておくといいかも。 あとは implib の使い方だけ知っておけば、上記libと合わせて使うことで Borland用のDLLをわざわざ用意しなくてもいろいろできるハズ。
355 名前:デフォルトの名無しさん mailto:sage [05/01/02 20:35:59] 回答ありがとうございます。 「調べ方も分からないなら」といわれてしまったので、少々気合を入れなおして 英語のサイトも覗いてみたのですが、とある質問サイトでまったく同じ内容の エラーメッセージが出ているのを見つけました。 その件はどうやらグラフィックドライバをアップデートした上でdirectX9.0を 入れなおしたら治ったようです。 しかし、今プログラミングに使っているのは、2台持っているパソコンのうち (壊れても惜しくない)古いほうであるためビデオカードも古く、ドライバのアップデートは 難しい状況です。 というわけで、あえてdirectX8でプログラムを組みなおしてみることを検討してみます。
356 名前:デフォルトの名無しさん mailto:sage [05/01/05 12:02:01] ズバリ聞きますが、 BCCでNaNって使えないの? double x = 0.0 / 0.0; if((x) != (x)) {... やると落ちるし。 printfでは"-NAN"って出るんだけどなぁ...
357 名前:デフォルトの名無しさん mailto:sage [05/01/07 00:40:10] >>356 コンピューターは仕組み的に「○○をゼロで割る」ができません。 x!=xも意味わからんし、もっとまともなソースを書いてください。
358 名前:356 mailto:sage [05/01/07 09:44:28] >>357 まぁまぁ。 ちょいとこいつら見てくだせぇ。 ttp://e-words.jp/w/NaN.html 「0で除算を行なったり、...言語処理系によってはエラーを発生させてプログラムを 中断するが、特殊な数値表現を結果として返し、処理を続行する場合がある。」 0で除算したときに落ちてないから「特殊な数値表現」を返しているんだろうとは思うけど... あとココの14.9項。 ttp://lagendra.s.kanazawa-u.ac.jp/ogurisu/manuals/c/C-faq/C-faq-14.html
359 名前:デフォルトの名無しさん mailto:sage [05/01/08 09:53:02] >>356 IntelのFPUには control word というものがあって、その初期値が BCとVCとで異なる。BCではゼロ除算で例外を発生するように初期化 されるが、VCではすべての例外はマスクされるために例外が発生し ない。 BCで数値演算例外を発生しないようにするには、下のソースをコン パイルして、実行したいプログラムとリンクすればよい。 #include <float.h> void mask87exceptions(void) { _control87(0x1f,0x1f); } #pragma startup mask87exceptions 以上。
360 名前:デフォルトの名無しさん mailto:sage [05/01/08 10:26:45] >>356 #include <stdio.h> #include <float.h> int main(){ double x = 0.0/0.0; if((x) != (x)) { printf("NaN(1)\n"); } if(_isnan(x)) { printf("NaN(2)\n"); } printf("OK\n"); return 0; } …>>359 使ってないけど落ちなかった。NaN(2)は表示された。 BCC 5.5.1 + Win2kSP4 にてテスト。
361 名前:デフォルトの名無しさん mailto:sage [05/01/08 10:37:35] >>359 t 俺も落ちなかったよ。 BCC5.6.4+WinXPSP2
362 名前:デフォルトの名無しさん mailto:sage [05/01/08 19:08:35] >>360 ちょっと変えて、下のようにすると落ちる。これを防ぐにはやはり>>359 が不可欠。 #include <stdio.h> int main() { double x = 0.0 / 0.0; if (x != x) printf("NaN != NaN\n"); else if (x == x) printf("NaN == NaN\n"); else printf("both (NaN == NaN) and (NaN != NaN) are false\n"); return 0; }
363 名前:356 mailto:sage [05/01/08 20:52:27] おをを、なんか急にたくさんレスが... >>359 早速試してみたところ、確かに落ちなくなったけど>>360 さんの結果と同じく x != x はfalseになった。まぁ _isnan() があったようなので問題はないと思われます。 それにしても詳しいですなぁ。「control word」なんて聞いたこともなかった。 ...isnan()はないかなぁとincludeフォルダ内に検索かけて _isnan() を見つけて 使ってみたけどなんだったか良く覚えてないけどエラーが出てやっぱ使えないかとか 思ってたところで >>360 をコピペしたら動いちゃってあれはなんだったんだとかいう感じです。 今思うとあれは _isnan() の前にあった条件文がいけなかったのかもしれません。 でもとにかく皆さん説明と動作検証本当にありがとうございました。
364 名前:デフォルトの名無しさん mailto:sage [05/01/09 02:18:46] >>353 です。 DirectX8でプログラムを組みなおしてみたのですが、Direct3DCreate8が失敗するようなのです。 しかし、この関数の引数はマクロD3D_SDK_VERSION固定なのでどうしたものかと 大丈夫だろうかと思いつつも、無理やり適当に数字を突っ込んで見たところ、 引数に201をとったときに動くことが分かりました。 さて、ここで質問です。 Direct3DCreate8は引数に使うためにマクロが用意されているわけですが、 これを無視して数を放り込んでしまってもよいのでしょうか。 動くとはいえ。
365 名前:デフォルトの名無しさん mailto:sage [05/01/09 16:12:29] d3d9.hを先にincludeしてるってことはないよね 極力無視しないほうが良ひと思ふ
366 名前:353 mailto:sage [05/01/17 09:41:12 ] 続報です。 前述のように、うちには2台のパソコンがあり、プログラミングには古いほうを 使っているのですが、ある程度プログラムもできてきたので一度新しいほうでも 動かしてみようと思いやってみました。 しかし、またDirect3DCreate8が失敗するのです。 色々やってみたところ、新しいほうのパソコンは元のマクロを使わなければなら ないようです。 というわけで、何が悪いのか分かりませんが、とにかく動くのでこのままいじっ てみたいと思います
367 名前:デフォルトの名無しさん mailto:sage [05/01/21 21:20:32 ] マルチスレッドのコンソールアプリのサンプルプログラムないですか?
368 名前:デフォルトの名無しさん [05/02/01 19:16:55 ] VCのリリースビルドみたいなのは、BCCにもあるのでしょうか。 オプションで-Oとかありますが、それらがこれにあたるのでしょうか。 また正しいやり方があるなら、やり方を教えてください。
369 名前:デフォルトの名無しさん mailto:sage [05/02/01 21:09:06 ] >>368 usr_vogel.at.infoseek.co.jp/Compiler/BCC/index.html
370 名前:デフォルトの名無しさん mailto:sage [05/02/01 21:33:58 ] >>368 -vがデバッグ用のオプション VCでのリリース時にしか最適化が有効にならないことなどまで気にするならmakefile作ってやれ。 デバッガを持っていないのなら意味無いけどね。
371 名前:368 mailto:sage [05/02/01 22:26:40 ] >>369-370 逆でしたか。 VCがデバックモードがデフォだから、 何かを付ける事で、リリースビルドが行われると思っていました。 ありがとうございました。
372 名前:367 mailto:sage [05/02/05 18:48:45 ] マルチスレッドでビープ音を鳴らすのを作ってみた。 どう? unsigned __stdcall thr_beep(void *semh) { while (1) { WaitForSingleObject(*(HANDLE *)semh, INFINITE); fputc('\a', stderr); } } void beep(void) { static HANDLE thrh = NULL, semh = NULL; if (thrh == NULL) { DWORD thrid; semh = CreateSemaphore(NULL, 0, 1, NULL); thrh = (HANDLE)_beginthreadex(NULL, 0, thr_beep, &semh, 0, &thrid); } ReleaseSemaphore(semh, 1, NULL); }
373 名前:デフォルトの名無しさん mailto:sage [05/02/06 00:25:45 ] 説明するのも面倒なほど酷い
374 名前:デフォルトの名無しさん mailto:sage [05/02/06 15:00:22 ] 説明できるふりしても意味無いと思いますが ;-)
375 名前:デフォルトの名無しさん mailto:sage [05/02/10 07:19:07 ] saaxaxaxa
376 名前:デフォルトの名無しさん mailto:sage [05/02/11 01:33:33 ] エラーが出て、リソースリンクしてる?時にbrc32が落ちてしまいます。 あるときから突然brc32を使用できなくなりました。 ilink32.exeを実行中に落ちてるみたいなので、 bccを再インストールしてみましたが、変わりなく落ちてしまいます。 以下がそのときに表示されるエラーとその詳細です。 問題が発生したため、Turbo Incremental Linker を終了します。 ご不便をおかけして申し訳ありません。 AppName: ilink32.exe AppVer: 5.0.1.2 ModName: rlink32.dll ModVer: 5.0.0.2 Offset: 000026d4 これが、brc32の実行中に出ます。 当方環境はPen4 XP bcc5.5です。 まだ必要な情報がありましたら書きます。 ご指導宜しくお願いします。
377 名前:デフォルトの名無しさん mailto:sage [05/02/11 02:04:20 ] リソースにでかすぎるファイルがあるとか。
378 名前:376 mailto:sage [05/02/11 03:12:51 ] >>377 レスありがとうございます。 検証してみた結果、その通りであることが判明しました。 こんな時間にもかかわらずご指導ありがとうございました。 こんなミスに気が付かなかったなんて…Orz 逝ってきます。
379 名前:デフォルトの名無しさん [05/02/15 19:08:43 ] 質問させてください。(WindowsMeで、bcc5.5.1を使っています。) sizeof(BITMAPFILEHEADER)の結果が14になるのは何故でしょうか? 4byteの境界調整が行われるなら、16になるかと思ったのですが、違いました。 そこで試しに、BITMAPFILEHEADER構造体とデータメンバを同じにした構造体を定義した、 以下のようなソースを書いてみたのですが、 #include <windows.h> #include <iostream> using namespace std; struct AAA { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; }; int main() { cout << "sizeof(BITMAPFILEHEADER) = " << sizeof(BITMAPFILEHEADER) << endl; cout << "sizeof(AAA) = " << sizeof(AAA) << endl; return 0; } 結果は sizeof(BITMAPFILEHEADER) = 14 sizeof(AAA) = 16 となってしまいました。
380 名前:デフォルトの名無しさん mailto:sage [05/02/15 22:11:47 ] >>379 sizeof(BITMAPFILEHEADER)の結果が DIB(BMP)ファイルのフォーマットと違ったら困るだろ。
381 名前:デフォルトの名無しさん mailto:sage [05/02/15 22:26:16 ] >>379 #pragma pack(2)
382 名前:デフォルトの名無しさん mailto:sage [05/02/15 22:29:58 ] >>379 pragma pack
383 名前:デフォルトの名無しさん mailto:sage [05/02/15 22:31:36 ] かぶった……
384 名前:デフォルトの名無しさん mailto:sage [05/02/15 22:36:40 ] >>379 sizeof(BITMAPFILEHEADER)については、wingdi.h にて #include <pshpack2.h> と #include <poppack.h> で囲まれています。こいつがアラインメントを調整してまふ。 それが結果が違う"理由"