c++ - 过程入口点无法位于动态链接库 Core.dll 中

标签 c++ dll visual-studio-2005 singleton linker

我正在将我的项目转换为使用 DLL,并试图拆分我的 Singleton 类以避免使用模板。

我的类LudoMemory,最初继承自Singleton。我现在正在尝试为其提供销毁和创建自身的功能,并让我的主引擎不依赖于 Singleton

我写了一个像这样的简单销毁方法:

LudoMemory *memory_Singleton = NULL;

    void LudoMemory::Destroy()
    {
        LUDO_SAFE_DELETE(m_Singleton)
    }

在运行程序时(没有编译器错误)我收到这个错误:

The procedure entry point ?Destroy@LudoMemory@@SAXXZ could not be located in the dynamic link library LudoCore.dll

LudoCoreLudoMemory 所属的项目。为什么会这样?我该如何解决?

最佳答案

您的系统上没有多个版本的 ludocore.dll,是吗? 过程入口点错误通常意味着:您针对 ludocore.lib 版本 x 编译项目,并且在运行程序时,它使用 ludocore.dll 版本 y,而版本 y 未定义 LudoMemory::Destroy()。

关于c++ - 过程入口点无法位于动态链接库 Core.dll 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1578950/

相关文章:

c++ - 使用IOCTL将音频数据从用户模式发送到Sysvad(虚拟音频驱动程序)

c++ - 可以将预编译 header 与 MIDL 生成的文件一起使用吗?

windows - 如何减少每次 ClickOnce 更新中供应商 dll 的大小?

无法在 Release模式下包含文件

visual-studio - 将项目从VS2003迁移到VS2005时需要注意什么

c++ - 存储在 vector 中的图像都是相同的

c++ - 如何更改键盘行为?

c# - 从 C# 调用的托管 C++ 中的类

java - jni4net - 如何设置 jni4net.j-0.7.1.0.jar 的绝对路径

c - "true"(小写)是否已经是 Visual Studio 中的关键字?它可以被覆盖吗?