Я пытался вызвать функцию 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
И тогда, когда я запускаю его, я получил вышеупомянутое сообщение об ошибке.
Кто-нибудь знает, как это исправить? Благодарю.
с помощью этот В статье MSDN я бы попробовал этот метод объявления функции:
Public Declare Function CheckStatus Lib "Power.DLL" Alias "_CheckStatus@0" () As Long
Это связано с искажением имени (даже с extern "C"
).
Посмотрите, что на самом деле экспорт в DLL, предположение будет либо _CheckStatus
или же _CheckStatus@0
,
Чтобы заставить имя быть как есть, сделайте .def
файл в вашем проекте с содержанием:
EXPORTS
CheckStatus=CheckStatus