1 名前:デフォルトの名無しさん [2010/03/05(金) 16:51:13 ] エスケープシーケンスやWin32APIなどの環境依存なものでもOK。 ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.71【環境依存OK】 pc12.2ch.net/test/read.cgi/tech/1264774545/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm codepad.org/ (コンパイルもできるし出力結果も得られるのでお勧め) ◆ソースのインデントについて 半角空白やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのも手ですが直接貼る場合は、 全角空白か に置換すると見栄えだけはよくなります。
328 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 02:34:35 ] メンバ変数のないメンバ関数だけのクラスのサイズは0でよいのでしょうか?
329 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 02:37:59 ] >>328 そうとは限らない。
330 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 02:48:38 ] >>328 C++では0ではない事が規格で保証されている 理由を聞くとアドレスを取るためだと
331 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 10:28:12 ] 何故クラスのサイズが0だと思ったのか
332 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 12:02:22 ] Cでは空の構造体のサイズが0になるからだろ C++は仮想関数などポインタに入れて使う使い方もあるので (もっともvtableなどで元々0ではないかもしれないが)空の 構造体やクラスでも0にはならないように設計されている
333 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 12:25:49 ] >>328 > メンバ変数のないメンバ関数だけのクラスのサイズは0でよいのでしょうか? むしろほぼ間違いなく0にはならないことが保証される。 例外はEBOが働いた時のみ
334 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 12:31:20 ] じゃあ空の構造体はCとC++で互換性が無いのか
335 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 12:43:37 ] ( ・∀・)つ〃∩ へぇ〜初めて知った EBO (Empty Base Optimization) 空の基底クラスの最適化。 メンバ変数を一個も持たない、空のクラス、というものが出来ることがあります。 しかし空のクラスであっても、アドレスは一意に決めなくてはならないので、 izeof( EmptyClass ) は 0 にはなりません。 EmptyClass arr[100]; assert( &arr[0] != &arr[1] ); // アドレスは違ってて欲しい単独で使う時には この無駄は仕方のないところですが、 例えばこの空クラスから他のクラスを派生 するときは、EmptyClass の分のサイズは 0 にして、派生クラスのメンバ変数の 分だけを確保する、という最適化が可能です。 C++の規格で許されているこの 最適化のことを、Empty Base Optimization と呼びます。
336 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 12:43:45 ] >>334 sizeof(空の構造体)が0になることがC言語の標準規格で保証されていたかは 記憶にないけど、もしそうならC++と互換性が無い点になるだろうね。 でもsizeof(空の構造体)==0に依存したソースってどんなんだ?
337 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 16:00:36 ] >>332 ISO C 6.2.6.1 p2 > Except for bit-fields, objects are composed of contiguous sequences of one or more bytes, ... C でもサイズは 0 にならないよ。
338 名前:336 mailto:sage [2010/04/04(日) 16:14:04 ] >>337 ほー。 じゃあむしろEBOが特例でサイズが0となり、 それ以外は標準C/C++では必ず1 or more バイトはかかるわけだ。 ありがとう。
339 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 00:47:17 ] struct hoge {}; struct hoge fuga[42]; で&fuga[0] < &fuga[1]でないと色々厄介だからね。
340 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 14:34:38 ] class iface {...}; class impl_a : public iface {...}; impl_a a1, a2, a3(a1); // ok a1 = a2; // ok iface &i1 = a1, &i2 = a2; // ok iface i3, i4(i1); // ng i1 = i2; // ng ifaceの生成コピー代入を禁止したままimpl_aの生成コピー代入を許可する、再利用性のあるイディオムはありますか? protectedな生成コピー代入をifaceに持たせれば仕様は満たすのですがこれは再利用性がなく boost::noncopyableではimpl_aもコピー代入不可になってしまうので条件に合いませんでした
341 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 17:54:44 ] かな、ローマ字入力方式がどちらなのか取得したいのですができません。同じ値が常に出力されます。 どうすればいいでしょうか? 切り替え自体はできてます。 2kXPVista7、OSデフォルトかOffice付属のIME 検証自体はwindows 7 office2007IME VC++2008Expressでしてます。 codepad.org/cVmmTnfL
342 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 20:30:55 ] >>340 生成すら不可にしたいならインターフェースクラスにするとかかな? 良いのが思いつかないので下で探して。 ja.wikibooks.org/wiki/More_C%2B%2B_Idioms
343 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 23:01:28 ] コピーコンストラクタでメンバ変数ポインタの中身をディープコピーしようと思うのですが メンバ変数ポインタの型の代入演算子に依存しないディープコピーの方法はないでしょうか?
344 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 23:04:54 ] Hoge(const Hoge &other) : fuga(new Fuga(*other.fuga)) { }
345 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 23:05:54 ] >>343 > メンバ変数ポインタの型の代入演算子に依存しないディープコピーの方法はないでしょうか? 素直に普通にCopy Constructorを書くとそうならない? テンプレート引数をT型とすると、 // Copy Constructor MyClass(const MyClass& other) { pointer = new T(*other.pointer); // pointerは生ポインタ or スマートポインタ型とする。 } じゃダメなんすか?
346 名前:345 mailto:sage [2010/04/05(月) 23:06:50 ] 演算子の優先順位が不安になったから少々修正。 // Copy Constructor MyClass(const MyClass& other) { pointer = new T( *( other.pointer ) ); // pointerは生ポインタ or スマートポインタ型とする。 } じゃダメなんすか?
347 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 23:37:38 ] メンバ変数ポインタって A B::*p; とかのことか? 汚いけどこれでどうよ。 #include <new> class A { public: A() {} }; class B { public: B() : m_a(operator new(sizeof(A))) { } ~B() { operator delete(m_a); } A* GetA() { return reinterpret_cast<A*>(m_a); } const A A1; const A A2; const A A3; void Copy(const A B::*p) { GetA()->~A(); new (GetA()) A(this->*p); } private: void* m_a; }; int main() { B b; b.Copy(&B::A1); b.Copy(&B::A2); b.Copy(&B::A3); }
348 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 00:08:37 ] メンバ変数ポインタだと別な意味なことにいまさら気がついた ポインタ型メンバのポイント先とでもいえばいいのかな? >>346 これも言葉足らずでした コピーコンストラクタや代入演算子のような相手方の実装に依存しないコピー、ということでした
349 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 00:50:07 ] >>340 iface に純粋仮想関数を宣言する。
350 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 00:51:33 ] >>348 コピーコンストラクタやコピー代入演算子を使わずにコピーしろというのか?
351 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 06:40:36 ] なにそれこわい
352 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 07:22:33 ] コピコンも代入演算子も禁止してディープコピーとか正気の沙汰じゃないぞw というか、相手方の実装に依存しないためのコピコンや代入演算子じゃないのか
353 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 07:23:23 ] >>349 相手方の実装におもいっきり制約かけてんじゃん
354 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 08:22:59 ] 多分、本当にやりたいことは微妙に違うんじゃないの? void* で持ってて型情報が消えてるんだけど deep copy したいとか。 だったら、type erasure あたりでぐぐれば参考情報があるかも。
355 名前:デフォルトの名無しさん [2010/04/07(水) 05:32:01 ] Windowsでミリ秒まで計測する方法を教えてください
356 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 05:38:11 ] >>355 ttp://www14.big.or.jp/~ken1/tech/tech19.html
357 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 13:23:05 ] RAIIに関する質問なんですけど、デストラクタでリソースの開放を行った場合 生のリソース開放処理が失敗した場合に例外も戻り値も使えないのでエラーを通知する方法が無いように思えるのですが 開放に失敗した時に、(侵入的ではない方法で)何か処理をしたい場合はどうすればいいんでしょうか?
358 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 19:30:14 ] >>353 インターフェースってそういうもんじゃないの?
359 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 19:34:56 ] >>357 リソース解放を行って成功したかどうかを返すメンバ関数を追加する。 デストラクタにも解放処理は置くけど、こっちはエラーを通知しない。 かわりにログを吐くか、あるいはその場で死ぬか。
360 名前:デフォルトの名無しさん [2010/04/08(木) 16:29:19 ] clock()を使って計測する際、OpenMP等を使ったりした場合でも、CPU時間を求めることができるのでしょうか?
361 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 16:44:57 ] はい。
362 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 18:44:46 ] clockって実時間じゃなかったの??
363 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 19:04:04 ] >>362 少なくとも、POSIXのclock()はプロセッサ時間だよ。
364 名前:デフォルトの名無しさん [2010/04/09(金) 11:16:13 ] ソリューションSの中にP1,P2という二つのプロジェクトを入れています。 プロジェクトP1の中にLobbyForm.hというヘッダーファイルがあり、プロジェクトP2内のmymain.cppの中でLobbyForm.hをインクルードしています。 当然mymain.cppの2行目に#include "LobbyForm.h"と記載しています。 これでVisualC++2008EEにてソリューションのビルドをかけると以下のエラーが出ます。 エラー 2 fatal error C1083: include ファイルを開けません。'LobbyForm.h': No such file or directory c:\users\********\documents\保存用\projects\lobbyformmain\lobbyformmain\mymain.cpp 2 LobbyForm.h(インクルードするヘッダーファイル)の場所 C:\Users\********\Documents\保存用\projects\LobbyFormLib mymain.cpp(インクルードの宣言場所)の場所 C:\Users\********\Documents\保存用\projects\LobbyFormMain\LobbyFormMain どの部分を直せばビルド可能になりますでしょうか?教えてください。
365 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 11:17:30 ] パスとおせ
366 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 11:26:15 ] >>365 できました、ありがとうございます!
367 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 14:32:04 ] ポート番号のwell-known portというのはなぜ存在するのでしょうか? 65536種類もポート番号があるならば、最初からプログラムごとにバラバラの番号を指定しておけばよいような気がします。 HTTPは80などと標準を作ることによるメリットとはなんでしょうか?
368 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 14:48:37 ] >>367 例えば IE は 80 FireFox は 81 Netscape は 82 Lynx は 83 Opera は 84 みたいにしたほうがいいって思ってるの?
369 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 14:52:29 ] ISPによってはwell-known port以外のパケットはポートアタックと 見なして通さない所があるからだよ NNTPは119だっけ
370 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 16:16:25 ] >>368 いいというか、大量に番号がある中でわざわざバッティングするようなことをしなくてもと思ってました。 >>369 そういった守り(?)の理由があるのですね、勉強になりました、ありがとうございます。
371 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 17:46:09 ] ポート番号ってのは電波の周波数みたいなもんでな… 予めどれを使うのかわかってなければ通信を成り立たせる事も出来ないだろうが
372 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 18:07:15 ] もしかしてサーバー側とクライアント側の区別が付いてないんじゃない
373 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 20:11:37 ] double型の数値を0.0から1.0の範囲で安全性を確保した上でできるだけ小さい幅でインクリメントしたいと考えています。 double d = 0.0; for (...); { d += DBL_EPSILON; } みたいなコードはそれを保証してくれるのでしょうか? 演算の誤差判定にしか使えないのでしょうか?
374 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 20:24:39 ] >>373 等間隔でインクリメントということだよね? そのコードは規格上では多分何も保証してくれてないけど、 IEEE754準拠の環境上ならそれでOK。 まぁdoubleでそれやると4500京回以上ループ回るが。
375 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 20:34:50 ] >>374 52bit程度だからそんなに精度はないはず
376 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 20:44:07 ] 時間測定してみりゃいいじゃん 今時のCPUなら速いだろ
377 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 20:45:40 ] すぐに桁落ちして増えなくなるな
378 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 20:53:35 ] でも今のOSは簡単にループを止めれていいわ DOS時代はリセットしかなかったからなあ
379 名前:375 [2010/04/09(金) 20:56:59 ] >>375 おお、4500兆か。 億、兆、京と数えていたつもりだったんだが、万をすっかり忘れていた
380 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 20:57:19 ] 374ね。
381 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 21:17:14 ] >>374 [0.0 - 1.0] の間で常に d + DBL_EPSILON > d を満たせばいいということです。 できるみたいですね、ありがとうございます。
382 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 21:26:27 ] > d + DBL_EPSILON > d むりっしょ
383 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 21:30:26 ] その精度は本当に必要なのかまず考える 必要ないなら整数最大値で整数を割った値を使う
384 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 21:50:05 ] >>382 無理じゃねーだろ
385 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 22:14:58 ] DBL_EPSILONの精度が0附近ではあっても1附近でもあるかどうかが問題だな。
386 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 22:21:41 ] >>385 定義は 1.0+DBL_EPSILON > 1.0 が成り立つ最小の数値だから大丈夫
387 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 22:38:03 ] この程度が限界だな 1.0にしたらいつ終わるかわからん struct foo { __int64 start, end, freq; HANDLE hprocess; DWORD oldclass; foo() : hprocess(GetCurrentProcess()), oldclass(GetPriorityClass(hprocess)) { Sleep(10); // SetPriorityClass(hprocess, REALTIME_PRIORITY_CLASS); QueryPerformanceFrequency((LARGE_INTEGER*)&freq); QueryPerformanceCounter((LARGE_INTEGER*)&start); } ~foo() { QueryPerformanceCounter((LARGE_INTEGER*)&end); // SetPriorityClass(hprocess, oldclass); std::cout << (int)(end - start) << std::endl; } }; int main() { { std::cout << "test1 : "; foo f; double d = 0.0; while (true) { d += std::numeric_limits<double>::epsilon(); if (d > 1e-7) break; } } }
388 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 00:40:59 ] C++使ったアプリ設計能力ってどこで身につけるんだ
389 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 00:42:51 ] >>388 チーム開発の現場で。
390 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 10:24:51 ] VC++なんですが、自動でインデントを設定させる方法はどこで設定すればよいのでしょうか VBだとデフォルトでそうなっているので、同じようにしたいのです
391 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 13:53:28 ] 前提としてVC++2008Expressの話で、特に設定とかしてないけど、 普通に改行だけでちゃんと続きのインデントになってるぜ? VB(6/.NET)がどうなのかは知らないが
392 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 14:01:12 ] はい、VC++2008Expressです。自動的、といより強制的と言うべきでした VBで↓を入力すると、強制的にこの形になるんです。二行目にタブを余分に入れても、タブを消してもこの形に戻ります ある程度コードを書いてから、全体をifやforで括りたくなったときに威力絶大です そういった機能は無いでしょうか? Class tex Inherits TextBox Sub New() Text = 123 End Sub End Class
393 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 14:21:27 ] 無いと思う 範囲選択して Ctrl+K, Ctrl+F くらいしかできないな
394 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 14:28:30 ] ありがとうございましたー ショートカットキー使わせてもらいます
395 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 14:30:37 ] >>393 一気に生理できました!すごく見やすいです。感激です。
396 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 19:12:42 ] >>395 初潮迎えたのか
397 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 21:57:01 ] >>396 俺が思っても言わなかったことを・・・
398 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 22:47:07 ] 一気にてwww 初潮の年齢は幅があるだろうが普通は10〜14歳だから、 その年齢でそれだけのプログラミングをする女って すげぇ優秀だな
399 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 22:54:05 ] 天才ハッカー美少女と聞いて
400 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 22:57:47 ] 天才ハッカー少女って ところまではあっているだろうが。。。
401 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 10:25:37 ] 以下のソースがclでは通るのですが、bcc32 (ver5.5.1)では通りません。 原因分かる人がいたら教えて下さい。 #include <cstdio> #include <windows.h> int main() { return 0; }
402 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 11:14:41 ] エラーメッセージも貼れないの?
403 名前:401 mailto:sage [2010/04/11(日) 11:20:36 ] >>402 エラーメッセージです。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10567.txt
404 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 11:46:47 ] >>401 #include <windows.h> #include <cstdio> int main() { return 0; }
405 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 11:50:17 ] >>403 ああそれBCC5.5.1が古すぎてインクルードの前後関係で エラーが出てしまう奴だね 他にもRogueWaveのiostreamなどを使っていてバグはいくつか 知られているよ
406 名前:401 mailto:sage [2010/04/11(日) 11:57:12 ] >>404 , 405 コンパイル通りました。ありがとうございます。 インクルードの前後関係でエラーになるんですね。
407 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 13:07:33 ] >>405 これはひどいなBCC
408 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 13:11:59 ] 今BCCはEmbarcadero CC 6.2.1になってバグはほとんど取れ、 Boostにも部分的にではありますが対応してます 吐くコードの質もかなり向上してます でもVC9には全然叶いませんが それからコンパイル速度が遅くなりましたね
409 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 13:46:00 ] >>408 > 今BCCはEmbarcadero CC 6.2.1になってバグはほとんど取れ、 > Boostにも部分的にではありますが対応してます ECC6.2.1とか無償で使えないんだよね? BCC大好きっ子でもない限り、ECCに金を払ってみる気にならんし・・・。 はやくBCC5.5.1に取って代わってくれ。
410 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 13:47:22 ] VC9って無料版は最適化積んでなくね?
411 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 14:12:26 ] >>410 そんなことはない。 プロファイル使った最適化は使えないが、/O1、/O2くらいは使える。
412 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 14:29:16 ] >>410 一体なんでそう思ったんだ
413 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 15:02:25 ] で、入力補完の充実したエディタはないんですか?
414 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 15:37:37 ] emacsでabbrevでもしてればいいよ
415 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 19:36:14 ] 勝手に入力補完されるとうっとおしいんで、 いつも M-x fundamental-mode してる
416 名前:デフォルトの名無しさん [2010/04/12(月) 13:36:17 ] C++で3Dアクションゲームを作ろうと思うのですが、 Directx+ライブラリ homepage2.nifty.com/natupaji/DxLib/index.html を使うか、 ODE www.koj-m.sakura.ne.jp/ode/ を使うかどちらの方が楽でしょうか ジャンプ等の移動関係は後者が有利そうで、描画に関しては前者が優れてそうなかんじなのですが
417 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 13:44:20 ] >>416 そのODEって知らないけど、サイトの説明見た限りで言えば、 多分初心者が手を抜いて簡単にゲーム作る為の物じゃないと思うぜ。 そのライブラリの方言をどっさり覚えないといけないと思う。 単にシミュレーションなどのデモ作るには良さそうだけどね。 リアルタイムゲーム的な物向けじゃない気がする。 あと、質問内容から察してなんとなくDirectX自体良くわかってなさそうなんだけど(失礼)、 多分3Dアクションってあたりから、最終的にやらねばならないコーディング内容は、 DxLib でも DirectX直接でもあまり変わらないと思うので、どちらかと言えば DirectX 直接の方が いろんな意味で楽で作業も早いかもしれない。 よく、初期化処理とか面倒で、みたいな事言う人もいるけど、あんなの定型処理なので意味さえわかってれば簡単だし、 メッシュモデルを移動や回転などさせる処理も単に行列用意してかけるだけ、みたいな簡易な関数も用意されてるので、 やってみれば意外にすんなりいけると思う。 そんな感じ
418 名前:デフォルトの名無しさん [2010/04/12(月) 13:57:01 ] >>417 ありがとうございます 実際よくdirectxは分かってないです・・ directxを直で書いてみます
419 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 14:10:55 ] つーか、3Dゲームに必要な数学の素養はあるのかと。
420 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 15:14:53 ] 全くないです!作りながらおぼえます
421 名前:デフォルトの名無しさん [2010/04/12(月) 15:47:42 ] ある関数が定義されているかどうかを知る方法を教えて
422 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 15:53:36 ] リンカでリンクしてエラーが出るかどうか Windows環境で winver により 使える/使えない API を分岐して使いたい → (LoadLibrary) 〜 GetProcAddress の戻りで分岐
423 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 17:12:21 ] >>422 そこまでいかないとわからないか・・・そりゃそうか ある関数が定義されてなければ俺が定義する というコードを 書きたかったんだけど
424 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 17:16:35 ] リンク時に 同一シンボル が存在した時、エラー以外で対処できる環境もあるよ (.lib 中 と .obj中 に同じシンボル → .obj側優先でリンク: MSのリンカ)
425 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 17:23:23 ] あー ゴメン 無ければ俺実装 有ればオリジナルを優先 ってのは ちょっと難しいかも?
426 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 21:22:32 ] その逆で、自分でも書くけど他のコードで上書き可能、ならweak属性という手もあるけどな
427 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 00:58:26 ] iostreamのcin, coutをバイナリモードにする処理系非依存な方法はありますか?
428 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 06:51:05 ] ios::binary と noskipws じゃダメなん?