繁体   English   中英

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

[英]The procedure entry point could not be located in the dynamic link library Core.dll

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

我的班级LudoMemory最初继承自Singleton 我试图赋予它现在销毁和创造自己的功能,让我的主引擎不依赖于Singleton

我写了一个简单的破坏方法,如:

LudoMemory *memory_Singleton = NULL;

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

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

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

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

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

Jacob关于多个DLL版本的答案似乎很可能。

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

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

在Visual Studio构建环境中,您也可以尝试通过在链接器优化设置中禁用引用[ 否(/ OPT:NOREF) ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM