質問: CallingConvention.Cdecl)] internal static extern CurlCode curl_global_init(int flags); ``` 呼ばれる側のC/C++側では、 ``` /** * curl_global_init() globally initializes curl given a bitwise set of the * different features of what to initialize. */ CURLcode curl_global_init(long flags) { return global_init(flags, TRUE); } ``` このように定義しています。 このような状態なのですが、なぜ表題のようなエントリポイントが見つかりませんというエラーになってしまうのでしょうか? DLL作成側のコンパイルの仕方でチェックするポイントなど無いものでしょうか?
回答: DLLはEXEとほとんど同じですが、作った関数を外部で呼び出すためにはエクスポートしなければ使えません。 それには2つの方法があります。 * リストモジュール定義 (.def) ファイルを作成し、DLL をビルドするときに .def ファイルを使用します。 名前ではなく序数で DLL から関数をエクスポートする場合は、この方法を使用します。 * リスト関数の定義に __declspec(dllexport) キーワードを使用します。 どちらかをやってますか? 詳しくは、 DLL からのエクスポート.aspx) __declspec(dllexport) を使った DLL からのエクスポート.aspx) 名前ではなく序数値による DLL 関数のエクスポート.aspx) などや「DLL エクスポート」でググってください。