SeExpr(v1)をDynamic LinkできるDLLにする!




せっかく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();」といった具合です。

全部書こうかと思ったけど、あまりにも多すぎたので割愛します。。。かわりに、ファイルを上げておきます!(`・ω・´)ゞ

ダウンロード