exeから呼び出す関数には、__declspec(dllexport)をつける。
ただし、defファイルを使えば__declspec(dllexport)の記述を省略できる。
名前装飾を無効化するために、extern "C"もつける。
DLLのリンクには、明示的リンクと暗黙的リンクとがある。
明示的リンクは、LoadLibrary()などで実現する。
暗黙的リンクは、関数宣言に、__declspec(import)をつけ、コンパイル時にlibファイルをリンクすることで実現する。
暗黙的リンクで利用するヘッダファイルは、
以下は参考ページ。
http://exlight.net/devel/windows/dll/windll.html
http://akasuku.blog.jp/archives/43379993.html
http://fa11enprince.hatenablog.com/entry/2014/06/20/015808
以上です。
ただし、defファイルを使えば__declspec(dllexport)の記述を省略できる。
名前装飾を無効化するために、extern "C"もつける。
DLLのリンクには、明示的リンクと暗黙的リンクとがある。
明示的リンクは、LoadLibrary()などで実現する。
暗黙的リンクは、関数宣言に、__declspec(import)をつけ、コンパイル時にlibファイルをリンクすることで実現する。
暗黙的リンクで利用するヘッダファイルは、
#ifdef MYDLL #define DLLAPI extern "C" __declspec(dllexport) #else #define DLLAPI extern "C" __declspec(dllimport) #endifなどとしておくと、DLL側とEXE側で共用できる。
以下は参考ページ。
http://exlight.net/devel/windows/dll/windll.html
http://akasuku.blog.jp/archives/43379993.html
http://fa11enprince.hatenablog.com/entry/2014/06/20/015808
以上です。
コメント