1

我有一个在 VB.Net 中开发的 DLL。我试图从我的 vc++ 代码中调用它的函数。dll 已使用 LoadLibrary 函数成功加载。但是当我尝试调用 dll 中的任何函数时,它会给出一个空指针异常。

我使用了 dumpbin 命令来确认我的 dll 中的函数参数。但它没有列出任何功能。可能是dll有问题还是dumpbin只支持几个dll?请帮忙!

C:\Program Files (x86)\Microsoft Visual Studio 11.0>dumpbin ECR.dll Microsoft (R) COFF/PE Dumper Version 11.00.51106.1 版权所有 (C) Microsoft Corporation。版权所有。

转储文件 ECR.dll

文件类型:DLL

概括

    2000 .reloc
    4000 .rsrc
    2000 .sdata
   16000 .text
4

1 回答 1

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

希望这可以帮助!对我来说很好。

于 2017-02-14T14:22:25.200 回答