У меня проблемы с работой простого надстройки Excel VBA. Я использую простой пример на https://www.vitoshacademy.com/c-adding-c-function-to-vbaexcel/, чтобы начать, но не могу заставить работать даже этот простой пример. SimpleMath. cpp, defMe.def и код VBA приведены ниже. Я добавил в SimpleMath. cpp свойства: Линкер: Вход: Файл определения модуля: defMe.def. В VS2019 код C ++ успешно компилируется и создает файл SimpleMath.dll, как и ожидалось в папке Debug. Но я пробовал много альтернатив, но не могу заставить работать код VBA в Excel. Поскольку многие веб-варианты этого примера выглядят старыми, мне интересно, требует ли VS2019 / C ++ что-то, что не описано в старых примерах?
В Excel появляется «Ошибка времени выполнения 453»: не удается точная точка входа DLL SimpleMath в c: \ VS19Projects \ CPP \ SimpleMath \ Debug \ SimpleMath.dll ".
Я использовал dumpbin / HEADERS SimpleMath.dll при попытке просмотра точки входа в dll. Точка входа не возвращается. Это может указывать на то, что я использую * .def неправильно.
Руководство и предложения будут оценены.
//SimpleMath.cpp
int __stdcall SimpleMath(int & x)
{
int result = 0;
for (int a = 0; a <= x; a++) {
result += a;
}
return result;
}
;defMe.def C++ code
LIBRARY "SimpleMath"
EXPORTS
SimpleMath
// VBA Code in Excel Module
Declare Function SimpleMath Lib "C:\VS2019Projects\SimpleMath\Debug\SimpleMath.dll" (ByRef x As Long) As Long
Sub TestMe()
Dim n As Long: n = 5
dim result as long
result = SimpleMath(n)
End Sub