C++中ダイナミックリンクライブラリ--インポートとエクスポートの実例詳細


C++中ダイナミックリンクライブラリ--インポートとエクスポートの実例詳細
同前declspec(dlexport)と_udeclspec(dlimport):

 __declspec(dllexport):         、    C++     ,            DLL         、   C++ 。
 __declspec(dllimport):         、    C++     ,            DLL         DLL            。
DLLの導入段:
 実行可能なモジュールを構築するとき、実行可能モジュールはまた、DLLモジュールのリストに必要なすべての名前を記載した導入セグメントを含んでいてもよい。
このセグメントはまた、実行可能ファイルのバイナリコードに参照される関数と変数のシンボル名を記録しています。DLLにも同じ導入段があり、
モジュール名と関数、記号名を記録します。
DLLファイルのエクスポートセグメント:
  リンク器がDLLを生成するファイルには、導出した変数、関数、クラスのシンボル名が表示された導出記号表が埋め込まれている。
extern「C」の役割:
  extern"C"は、変数名や関数名をコンパイラに改編しないように伝えます。このように、C/C++または任意のプログラミング言語で作成された実行可能モジュールは、その変数や関数にアクセスできます。
作成互換DLL:

 C++      ,C         ,C++            , C     。
   Microsoft                       DLL,                    。
            :
  1、extern "C"       、    ;
  2、       .def  ;
     LIBRARY "dll-name.dll"
     EXPORTS
       func-name @ 1
     .def      :
     1> EXPORTS             ,   .def            @n,           n;
     2> .def                    ,            ;
  3、DLL      :#pragma comment(linker, "/export:MyFunc=_MyFunc@8")
疑問があれば、メッセージをお願いします。あるいは、当駅のコミュニティで交流して討論してください。ありがとうございます。