对于一个项目,我需要导入一个用Delphi制作的DLL并调用一些函数。 但是,项目团队中没有人知道如何完成这项工作。我们公司的主管用C ++编写了一个程序来打开DLL并调用函数,但他没有VBA的经验。
我们的项目是调用函数并将一些参数从excel工作表传递给程序(燃气轮机模拟项目)。我们的第一个问题是:我们如何在VBA中加载Delphi dll?我读到了dllimport函数,但我仍然不知道如何使用这个函数。
例如,在dll中有一个函数:d4868activateLog Delphi中的代码如下:
function activateLog (const filename: PAnsiChar):Integer;
我们如何称呼此功能?
答案 0 :(得分:4)
您无法从VBA调用该函数,因为它使用register
调用约定。 VBA只能导入stdcall
个函数。
您可以将Delphi代码更改为:
function d4868activateLog(const filename: PAnsiChar): Integer; stdcall;
然后在VBA中你会写:
Private Declare Function d4868activateLog Lib "mydll.dll" (ByVal filename As String) As Long