- 2007/04/06 14:27
- 未分類
pbrtのコードをぼーっと眺めていると、
COREDLLというものが頻繁に使われていることに気付く。
例えばこんな感じ↓
class COREDLL Light { ….
これがどういう意味か全然わかんなくて、すごく気になってしまって、
調べてみました。
困ったときのgrepです。
結論から言えば、COREDLLというのはマクロです。
pbrt.hに思いっきりこう定義してありました↓
#ifdef CORE_SOURCE
#define COREDLL __declspec(dllexport)
#else
#define COREDLL __declspec(dllimport)
#endif
マクロというのは、コンパイル時にプリプロセッサがその値に置き換えてくれるもの、
だったと思います。違ったっけ?
うーん、なるほど。
あとは__declspec(dllexport)の意味を調べればよいだけです。
詳しく調べてないけど、どうやら値をexportするための何かだそうです。
dllがついてるからdllも関係あるんでしょう。
まぁこれはとりあえず置いとく。
で、COREDLLがマクロだという事に気付いて、ハッとしました。
そういえばC/C++には暗黙の了解があったのでした。
全部大文字のコマンドはマクロだと思え。
あちゃー、すっかり忘れてました。
Cはマクロだポインタだconstだstaticだクラスだ、なんてよく分からない機能が盛りだくさんで、
非常に覚えるのが面倒ですが、うおーー楽しそう!とドキドキしてしまう僕なのでした。
覚えることが多いのって楽しいよねぇ。
- Newer: [ dev misc ] ポリゴンとの交差
- Older: いつものようにどうでもいい考察。
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://blog.taikomatsu.com/2007/04/06/pbrt%e8%aa%ad%e8%a7%a3-coredll/trackback/
- Listed below are links to weblogs that reference
- [ pbrt読解 ] COREDLL??? from memlog