Не могу найти точку входа DLL

Я пытался вызвать функцию DLL в моем проекте VBA, но я получаю это сообщение об ошибке:

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

Вот определение для DLL в файле C ++:

#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

И тогда, когда я запускаю его, я получил вышеупомянутое сообщение об ошибке.

Кто-нибудь знает, как это исправить? Благодарю.

3

Решение

с помощью этот В статье MSDN я бы попробовал этот метод объявления функции:

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

Другие решения

Это связано с искажением имени (даже с extern "C").
Посмотрите, что на самом деле экспорт в DLL, предположение будет либо _CheckStatus или же _CheckStatus@0,
Чтобы заставить имя быть как есть, сделайте .def файл в вашем проекте с содержанием:

EXPORTS
CheckStatus=CheckStatus
4

По вопросам рекламы [email protected]