我有一个在VB.Net中发布的DLL。我试图从我的vc ++代码调用它的函数。使用LoadLibrary函数成功加载了dll。 但是当我尝试调用dll中的任何函数时,它会给出一个空指针异常。
我使用dumpbin命令来确认我的dll中的函数参数。但它没有列出任何功能。这可能是dll的问题,还是dumpbin只支持几个dll?请帮忙!
C:\ Program Files(x86)\ Microsoft Visual Studio 11.0> dumpbin ECR.dll Microsoft(R)COFF / PE Dumper版本11.00.51106.1版权所有(C) 微软公司。保留所有权利。
转储文件ECR.dll
文件类型:DLL
摘要
2000 .reloc 4000 .rsrc 2000 .sdata 16000 .text
答案 0 :(得分:0)
尝试在DLL文件中的任何函数(头文件.h文件)之前写入最后带有_API的项目名称(ECR_API)。
例如,假设我们要为名为Loader的类创建构造函数和析构函数:class Loader{
public:
ECR_API Loader();
ECR_API ~Loader();
}
也不要忘记在头文件的开头添加导出和导入语句:
#ifdef ECR_EXPORTS
#define ECR_API __declspec(dllexport)
#else
#define ECR __declspec(dllimport)
#endif
希望这有帮助! 对我来说很好。