我得到了下面的问题:声明使用不同的参数,从C-DLL函数帕斯卡
我加载一个C-DLL中的函数在我Lazarus计划像
@dpstate_callCustomfunction:= GetProcAddress(mConnectorLibrary, 'dpstate_callCustomfunction');
这个功能得到了不同在C-DLL中有不同变量的实现,所以我必须在Lazarus项目中多次声明它。我想它想:
var dpstate_callCustomfunction: function(plugin, method, paramName: string; customfunctionCallbackFunction: string; id: PChar): integer; stdcall; overload; override;
var dpstate_callCustomfunction: function(plugin, method, paramName: string; resultParam: PChar): integer; stdcall; reintroduce; overload;
但是,编译器告诉我下面的错误: “错误:程序指令‘覆盖’不procvar声明允许” “错误:程序指令‘过载’不允许procvar宣言”
我在做什么错? = /如果我删除它编译的“var”,但我认为我需要“var”还是我错了?
覆盖用于方法。你是否可以通过在帕斯卡尔一侧不使用相同的名字来回避这个问题? – 2013-02-13 16:49:11
你正在导入的函数不会*具有不同参数的不同实现。 DLL不支持重载。每个导出的名称都只引用DLL中的一个函数。如果DLL导出多个函数,那么它们都使用不同的名称,并且没有理由不应该在Delphi代码中使用这些不同的名称。 – 2013-02-13 17:09:32