visual studio 2010 - c++ DLL不导出我的功能
visual studio 2010 - C++ DLL not exporting my function
我已经搜索了谷歌和整个这个网站,似乎我正在做的事情与我读过的东西相匹配。我使用VS 2010 c++ Express。当我在DLL上调用dumpbin/exports时,我没有看到任何函数列表。
这里是我在我的DLL代码中唯一的东西。在c++中我需要任何特殊的头文件吗?
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可以像调用其他DLL一样调用. exe中的函数。
关键元素是__declspec(dllexport)。似乎是正确的。检查您的头文件是否真的包含在您的cpp文件中,并尝试在项目的属性页中使用各种选项的变体
如果您认为它没有导出,请尝试dependency walker和CFF Explorer来查看生成的dll中的符号。在MSDN你可以找到更多关于如何导出
相关文章:
- 询问在设计我的手臂模拟器功能表示格式1
- 反向功能超出了我的 cpp 程序的范围
- 为什么我的功能在使用 goto 时会给我带来"expected primary-expression before '}' token"?
- 访问我以前可以访问的功能时出现分段错误
- 为什么我的打印功能不起作用?链表
- C //尝试重写一个工作代码以包括我的功能
- 尽管我的功能和cout语句的放置错误,但我的程序为什么会起作用
- 在我的功能中添加IF语句
- 为什么VS2017拒绝我的功能模板专业化,而不是VS2015拒绝
- 对我的功能的未定义引用
- 我的功能跳过C 中的循环参数
- 为什么Clang自动将属性添加到我的功能中
- 在这种情况下,(N)RVO是否适用于我的功能
- 返回语句打破我的功能C
- 我的功能似乎是正确的,但我会收到编译错误
- 为什么我的功能(在二进制树上)打印出意外的结果
- 如何阻止编译器删除我的功能
- 如何使我的功能通过大多数频繁以及如何处理空间来组织?C
- 消除对Boost ::的需求,以绑定我的功能
- visual studio 2010 - c++ DLL不导出我的功能