我想在VBA宏中创建一个COM对象,然后将其传递给Delphi DLL(D2009).我在Delphi中的程序声明应该是什么样的?
背景:我期待(希望)VBA宏:创建COM对象,调用Delphi DLL,将COM对象传递给Delphi DLL程序,保持活着直到Delphi DLL自行关闭(DLL将有嵌入的表单)用户与之交互).
我想我需要创建一个回调函数,让VBA宏知道我已经完成了它可以整理,但我将独立于这个问题进行处理.
更新更具体地说:导出的函数声明应该用于Delphi DLL.
你必须将ADO Connection接口链接传递_Connection给delphi过程然后创建TADOConnection实例并用新接口链接替换ConnectionObject
library Project1;
uses ADODB;
{$R *.res}
procedure SetConnection(aDBConnection : _Connection); stdcall;
var connect : TADOConnection;
begin
connect := TADOConnection.Create(nil);
try
connect.ConnectionObject := aDBConnection;
//here you can use your connection
finally
connect.Free();
end;
end;
exports SetConnection name 'SetDBConnection';
begin
end.
Run Code Online (Sandbox Code Playgroud)
最好使用stdcall调用约定.使用export关键字setConnectionPROC可从与uotside SetDBConnection的名字,这样你就可以LoadLibrary和getProcAddress找到其入口点(我真的不知道VBA,所以我不能说,如何用它来装载库)
| 归档时间: |
|
| 查看次数: |
459 次 |
| 最近记录: |