2009,08,22 Saturday
今の仕事で自分で作ったDLLをC#で使っているのもあって
色々調べてたところ、MSDNに良い記事を見つけためURLをメモしておく。
参照URL : リンク方式の使い分け
DLLを使ったことがある人なら知っているとは思うが
暗黙的なリンクと明示的なリンクの 2 種類のリンク方法がある。
個人的には暗黙的なリンクの方をよく使うが
明示的リンクは扱いが面倒なためあまり使うことがない。
ただ、趣味として使うのであれば理解していなくても構わないかもしれないが
仕事として使っているので理解する必要があるだろう。
ついでに、DLLを作る際の注意を以下にメモしておく。
・ 関数名を明示的にするにはDLL側の関数で __declspec(dllexport) を戻り値の型の前につける。(#defineしておくとラク)
=> DEFファイルが必要なくなる
・ Export部分にC++(ClassやOverload)の機能を用いて作成されたDLLは、呼び出す側はC++でしか扱えない。
・ extern "C"構文を利用して、C++の名前装飾をやめれば、他の環境(他言語等)にも対応できる。
・ 作成後はVisualStudio付属の dumpbin.exe を使ってExportの確認。(/EXPORTS)
色々調べてたところ、MSDNに良い記事を見つけためURLをメモしておく。
参照URL : リンク方式の使い分け
DLLを使ったことがある人なら知っているとは思うが
暗黙的なリンクと明示的なリンクの 2 種類のリンク方法がある。
個人的には暗黙的なリンクの方をよく使うが
明示的リンクは扱いが面倒なためあまり使うことがない。
ただ、趣味として使うのであれば理解していなくても構わないかもしれないが
仕事として使っているので理解する必要があるだろう。
ついでに、DLLを作る際の注意を以下にメモしておく。
・ 関数名を明示的にするにはDLL側の関数で __declspec(dllexport) を戻り値の型の前につける。(#defineしておくとラク)
=> DEFファイルが必要なくなる
・ Export部分にC++(ClassやOverload)の機能を用いて作成されたDLLは、呼び出す側はC++でしか扱えない。
・ extern "C"構文を利用して、C++の名前装飾をやめれば、他の環境(他言語等)にも対応できる。
・ 作成後はVisualStudio付属の dumpbin.exe を使ってExportの確認。(/EXPORTS)
コメント
コメントする
この記事のトラックバックURL
http://wish-star.sytes.net/~gaku/tb.php/148
トラックバック
TOP PAGE △






