功能签名为:
void __stdcall Test(char *,int)
函数中使用的__FUNCDNAME__宏返回修饰的函数名称:
启用/clr选项(“项目”>“属性”>“常规”>“公共语言运行时支持” // clr)时,__ FUNCDNAME__宏不会返回实际修饰的函数名称:
这使得无法使用 #pragma注释指令从代码中没有修饰名称的直接从DLL中直接导出DLL的功能:>
// .h
/*__declspec(dllexport)*/ void __stdcall Test(char *p1, int p2);
// .cpp
void __stdcall Test(char *p1, int p2)
{
#pragma message("Exporting function " __FUNCTION__ " [" __FUNCDNAME__ "]")
#pragma comment(linker, "/EXPORT:" __FUNCTION__ "=" __FUNCDNAME__)
}
返回链接器错误LNK1242'?Test @@ $$ FYGXPADH @ Z'是无效的导出符号名称。