せっかくSeExprをビルドしたのに、できればDynamicLinkできるようにしたい!っということで、アレコレやってみました!∠( ゚д゚)/
DLLを作る時、DLLを使う時のヘッダファイルを使い分けしたくないなーっと思いました。
そこで、DLLの中身が見える状態にするには、いくつか種類がありますが、今回は「__declspec(dllexport)」と「__declspec(dllimport)」をヘッダファイルに書き込む方法で行きたいと思います!
ヘッダファイルの冒頭に「SeExpr_EXPORTS」が定義されていれば「__declspec(dllexport)」、されていなければ「__declspec(dllimport)」を使うようなdefineを用意します。
「SeExpr_EXPORTS」は、もともと使われているプリプロセッサです。
#ifdef SeExpr_EXPORTS #define CLASS_DECLSPEC __declspec(dllexport) #else #define CLASS_DECLSPEC __declspec(dllimport) #endif
これを使ってClass、関数の宣言にペチペチ追記していきます。「class SeVec3d」なら「class CLASS_DECLSPEC SeVec3d」と、「void initPerlin();」なら「CLASS_DECLSPEC void initPerlin();」といった具合です。
全部書こうかと思ったけど、あまりにも多すぎたので割愛します。。。かわりに、ファイルを上げておきます!(`・ω・´)ゞ