【发布时间】:2011-10-31 23:10:44
【问题描述】:
我有一个Delphi 5 应用程序,在应用程序代码中调用DLL 中的一个函数,传递整数和字符串参数,这在以静态方式调用DLL 时效果很好,当我尝试动态更改时不起作用。 传递参数以动态运行的正确方法是什么? 代码如下
主应用程序
function Modulo_Pptos_Operacion(No_Orden : Integer; pathBD : string; PathBDConf : String) : Integer ; stdcall;
external 'LIB_Pptos_Oper.dll';
Modulo_Pptos_Operacion(DmDatos.OrdenesNO_Orden.AsInteger,
DmDatos.CiasPATHA.AsString, 'Alguna String');
DLL
Modulo_Pptos_Operacion function (No_Orden: Integer; PathDB: AnsiString; PathDBConfig: AnsiString): Integer; StdCall;
动态崩溃 主要应用
type
TDLLPpto = function(No_Orden : Integer; PathDB : AnsiString; PathDBConfig : AnsiString) : Integer;
var
DLLHandle: THandle;
: TDLLPpto;
PROCEDURE CALL
DLLHandle := LoadLibrary('LIB_Pptos_Oper.dll');
DLLHandle <> 0 then
begin
@DLLPpto := GetProcAddress(DLLHandle, 'Modulo_Pptos_Operacion');
end;
;
哪种方法是正确的?
【问题讨论】:
标签: delphi