DLL坏函数名称

时间:2014-03-26 17:47:47

标签: c dll

我正在处理包含函数DLLEXPORT void* GetBase(HANDLE hProc)的DLL,当我编译它时,我使用Dependency Walker打开它,并且没有名称" GetBase&#34的函数;。我只能看到"?GetBase @@ YAPAXPAX @ Z"。这有什么不对?我使用的是Visual C ++ 2013,并将其编译为发行版。

1 个答案:

答案 0 :(得分:0)

没有什么"错误"与你的功能。它被损坏了#34 ;;换句话说,编译器将类型信息添加到您的函数名称中。这就是C ++支持重载的方式:具有相同名称但使用不同参数的函数将具有不同的错位函数名称。

你的DLL也可能有debug info attached,这可能是名称修改的另一个来源。

尽管如此," c"你问题上的标签很麻烦; C没有超载,因此不需要名称修改。