动态链接库Core.dll中未找到过程入口点

6

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

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

我已经编写了一个简单的销毁方法,如下所示:

LudoMemory *memory_Singleton = NULL;

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

在运行程序时(没有编译器错误),我收到了以下错误:

无法定位动态链接库LudoCore.dll中的过程入口点?Destroy@LudoMemory@@SAXXZ

LudoCoreLudoMemory所属的项目。为什么会出现这种情况?我该如何解决?

3个回答

10

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


2

Jacob关于多个DLL版本的回答似乎是有道理的。

此外,在某些构建系统中,您必须明确列出将在DLL中导出的函数。

研究您的构建环境,并查看是否必须提供要导出为入口点的方法列表。


0
在Visual Studio构建环境中,您还可以尝试通过在链接器优化设置中禁用引用[No(/OPT:NOREF)]来实现。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接