首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >找不到入口点

找不到入口点
EN

Stack Overflow用户
提问于 2013-06-17 02:21:59
回答 4查看 28K关注 0票数 9

当我试图运行一个链接到我的DLL的应用程序时,我遇到了一个奇怪的错误(我已经有一段时间没有修改代码了,因为它工作得很好)。这个DLL过去是可以工作的,但我一直在对DLL的代码进行修改,并使其能够正常编译。不幸的是,在尝试运行应用程序时...

代码语言:javascript
复制
---------------------------
GameTest001.exe - Entry Point Not Found
---------------------------
The procedure entry point ??0Music@@QAE@ABV0@@Z could not be located in the dynamic link library Renderer02.dll. 
---------------------------
OK   
---------------------------

我不知道如何解释这个错误。我知道我做了哪些更改,并且我的代码看起来很好。我试着用谷歌搜索了一下,结果一点运气都没有。

有人能对此有什么见解吗?这个错误是什么意思?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-17 02:28:38

您正在链接到一个导出的函数,该函数的名称已损坏,该名称为??0Music@@QAE@ABV0@@Z。正在加载的DLL不会导出具有该名称的函数,因此会出现错误。

名称损坏对函数的名称、参数和返回值进行编码。因此,不匹配的最可能原因是您在一个位置更改了函数的名称、参数或返回值,但在另一个位置没有更改。

如果更改了DLL,则需要重新编译它以生成新的.lib和.dll文件。您还将修改.h文件。确保链接到DLL的程序使用所有这三个文件的修改版本。

此错误消息实际上对您很有帮助,因为它将确保接口的两端都匹配,然后才能继续执行代码。

更新

我在上面的文本中说得不够清楚。无论何时更改DLL的接口,都必须执行以下操作:

DLL更新application.

  • Re-compile
  1. 用来生成新的.lib和.dll文件的任何.h文件。files.
  2. Distribute
  3. 使用更新的.lib重新编译应用程序,并对新的.dll文件执行.h操作,以便更新的应用程序加载更新的DLL。
票数 4
EN

Stack Overflow用户

发布于 2013-06-17 02:30:14

您的动态链接库中似乎缺少Music::Music(class Music const &)函数。??0Music@@QAE@ABV0@@Z是此函数的损坏名称。你可以使用this site来分解函数名。

票数 3
EN

Stack Overflow用户

发布于 2021-03-29 00:02:11

再次查看编译器标志,检查- included.In -libstdc++是否为静态,如果是这种情况,您必须重新构建应用程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17136315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档