gpt4 book ai didi

C++ DLL 不导出我的函数

转载 作者:太空狗 更新时间:2023-10-29 20:25:50 24 4
gpt4 key购买 nike

我已经在 Google 和整个网站上进行了搜索,我所做的似乎与我所阅读的内容相符。我正在使用 VS 2010 C++ Express。当我在 DLL 上调用 dumpbin/exports 时,我没有看到列出任何函数。

这是我的 DLL 代码中仅有的内容。我需要 C++ 中的任何特殊 header 吗?

C++ 头文件:

extern "C"
{
__declspec(dllexport) int __cdecl AddOne(int start);
}

C++ CPP 文件:

extern int __cdecl AddOne(int start)
{
return start + 1;
}

我是否遗漏了一些明显的东西?该函数是否必须位于命名空间或静态类或其他任何内容中?我现在只是想做基础。

最佳答案

我没有在您的代码中看到错误。 Extern "C"和 __cdecl 并不重要。它们控制如何您的入口点为链接器修饰。他们不控制是否它应该从您的 DLL 或可执行文件中导出。顺便说一下,.EXE 可以像任何其他 DLL 一样导出入口点。 DLL 可以调用驻留在 .EXE 中的函数,其调用方式与任何其他 DLL 中的相同。

关键元素是 __declspec(dllexport)。看来是对的。

检查您的 header 是否真的包含在您的 cpp 文件中,并在您的项目的属性页中尝试使用各种选项的变体。

关于C++ DLL 不导出我的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22569190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com