我正在使用 Visual Studio 5.0 我有 DLL 和静态库。我的意图是使用静态库中定义的静态函数。我已将头文件包含在预期的源 cpp 中,并在项目依赖项中给出了路径。它仍然给我链接器错误。
以下是链接错误
error LNK2019: unresolved external symbol "public: static bool __cdecl gph::IsA(class PtOnDemand &,wchar_t const *)" (?IsA@gph@@SA_NAAVPtOnDemand@@PB_W@Z) referenced in function "private: int __thiscall PtXMLP::HandleObjectBegin(char const *,char const * *)" (?HandleObjectBegin@PtXMLP@@AAEHPBDPAPBD@Z) 1>.\ReleaseU/epptxml.dll : fatal error LNK1120: 1 unresolved externals
任何建议
最佳答案
可能是链接器没有找到您的函数,因为它是用不同的设置编译的。就像发布与调试、unicode 与非 unicode、调用约定的差异一样。这可能会导致名称被不同地破坏。如果 .h 文件是用 c 而不是 c++ 编写的,您可能需要通过将原型(prototype)包装在
中来完全禁用名称修改 extern "C"
{
// function prototypes go here.
}
关于c++ - 将静态库链接到 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2266290/