找不到DLL入口点

时间:2012-12-20 21:40:14

标签: c++ vba dll entry-point

我一直在尝试在我的VBA项目中调用DLL函数,但我不断收到此错误消息:

Run-time error '453': Can't find DLL entry point "CheckStatus" in "Power.dll"

以下是C ++文件中DLL的定义:

#define CLASS_DECLSPEC extern "C" __declspec(dllexport)

CLASS_DECLSPEC int __stdcall CheckStatus();

以下是我试图声明它并在VBA中调用它的方式:

Public Declare Function CheckStatus Lib "Power.DLL" () As Long

Dim test As Long
test = CheckStatus

然后当我运行它时收到上述错误消息。

有谁知道如何解决这个问题?感谢。

2 个答案:

答案 0 :(得分:4)

这与名称修改有关(即使使用extern "C") 看看DLL中真正的导出是什么,猜测可能是_CheckStatus_CheckStatus@0 要强制名称保持原样,请在项目中使用以下内容创建.def文件:

EXPORTS
    CheckStatus=CheckStatus

答案 1 :(得分:1)

使用this MSDN文章,我会尝试这种声明函数的方法:

Public Declare Function CheckStatus Lib "Power.DLL" Alias "_CheckStatus@0" () As Long