c++ - 将静态库链接到 DLL

标签 c++ visual-studio

我正在使用 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/

相关文章:

c# - 如何关闭 Microsoft Azure Visual Studio C# WebRole WorkerRole 调试输出噪音?

wpf - 如何在 Visual Studio 中快速切换 XAML 和设计模式

c++ - 如何使用递归创建四叉树复制构造函数

c++ - 创建具有递增灰度值的图像网格

c++ - 使用 QPainter 绘图

c# - 使用评估的 MSBuild 属性值以编程方式强制更新 Visual Studio Intellisense

c++ - 使用 Visual Studio C++ 按名称搜索目录中的文件

c# - 识别字符串并正确操作

c++ - 使用聚合初始化器初始化类的模板(聚合类型)成员但没有额外的括号

c++ - 多线程 Linux 应用程序中的互斥锁