C/C++ DLL を作成していて、このような .def ファイルを使用する前に実行した特定の関数をエクスポートしたい
LIBRARY "MyLib"
EXPORTS
Foo
Bar
たとえば、次のように定義されたコードを使用します。
int Foo(int a);
void Bar(int foo);
ただし、次のように Foo() のオーバーロードされたメソッドを宣言したい場合はどうなりますか。
int Foo(int a, int b);
def ファイルには完全なプロトタイプではなく関数名しかないため、オーバーロードされた関数をどのように処理するかわかりません。適切にプロトタイプ化された関数ポインターを LoadLibrary() に渡すときに、1 つのエントリを使用して、オーバーロードされたバージョンを指定しますか?
編集:明確にするために、これはVisual Studio 2005を使用したWindows上です
編集:非定義(__declspec)メソッドを答えとしてマークしました...これで実際にdefファイルを使用しても問題が解決しないことはわかっていますが、defファイルを使用した(公式の)解決策はないようです。ただし、オーバーロードされた関数と定義ファイルがないことを誰かが知っている場合に備えて、質問を開いたままにします。