0

省略記号(mutli arg)関数をエクスポートすることはできますか?例

// dll function
extern "C" __declspec(dllexport) int __cdecl LogText(const wchar_t* fmt, ...);

// application 
typedef int (__cdecl *LogText)(const wchar_t* fmt, ...);
LogText doLog;
doLog = (LogText) GetProcAddress( hDll, "LogText");
4

1 に答える 1

2

もちろん。たとえば、CランタイムDLLはをエクスポートしprintfます。

ただし、名前のマングリングが考慮されていないため、コードはそのままでは機能しません。の場合、これは、 :__cdeclへの呼び出しでアンダースコアを前に付けることを意味します。GetProcAddress

doLog = (LogText) GetProcAddress( hDll, "_LogText");
于 2013-01-11T14:06:23.040 に答える