Delphi 6调用C++写的DLL,全局变量当参数出错,该怎么处理
Delphi 6调用C++写的DLL,全局变量当参数出错
Delphi 调用C++写的DLL,当用全局变量当参数时,运行出错
C++ :函数原形
int WINAPI RmuOpenAndConnect (HANDLE &hCom, char* cPort, UCHAR flagCrc);
DELPHI6 函数申明
Function RmuOpenAndConnect (Hcomm:thandle; Cport:Pchar; flagCrc: byte ):integer;stdcall;external 'RMU900_API.dll' ;
DELPHI6 运行成功( Hc:thandle; 局部变量)
procedure TFrmMain.Button1Click(Sender: TObject);
var Cport:Pchar;
flagCrc:byte;
i,j:integer;
Hc:thandle;
begin
Cport:=pchar('com3');
flagCrc:=0;
if RmuOpenAndConnect(Hc,Cport,flagCrc)=1 then showmessage('Open OK') else howmessage('false');
end;
DELPHI6 运行出错( Hc:thandle; 改为全局变量)
procedure TFrmMain.Button1Click(Sender: TObject);
var Cport:Pchar;
flagCrc:byte;
i,j:integer;
begin
Cport:=pchar('com3');
flagCrc:=0;
if RmuOpenAndConnect(Hc,Cport,flagCrc)=1 then showmessage('Open OK') else howmessage('false');
end;
------解决方案--------------------
HANDLE &hCom这个是c++引用类型
Function RmuOpenAndConnect (var Hcomm:thandle; Cport:Pchar; flagCrc: byte ):integer;stdcall;external 'RMU900_API.dll' ;
这样试试
Delphi 调用C++写的DLL,当用全局变量当参数时,运行出错
C++ :函数原形
int WINAPI RmuOpenAndConnect (HANDLE &hCom, char* cPort, UCHAR flagCrc);
DELPHI6 函数申明
Function RmuOpenAndConnect (Hcomm:thandle; Cport:Pchar; flagCrc: byte ):integer;stdcall;external 'RMU900_API.dll' ;
DELPHI6 运行成功( Hc:thandle; 局部变量)
procedure TFrmMain.Button1Click(Sender: TObject);
var Cport:Pchar;
flagCrc:byte;
i,j:integer;
Hc:thandle;
begin
Cport:=pchar('com3');
flagCrc:=0;
if RmuOpenAndConnect(Hc,Cport,flagCrc)=1 then showmessage('Open OK') else howmessage('false');
end;
DELPHI6 运行出错( Hc:thandle; 改为全局变量)
procedure TFrmMain.Button1Click(Sender: TObject);
var Cport:Pchar;
flagCrc:byte;
i,j:integer;
begin
Cport:=pchar('com3');
flagCrc:=0;
if RmuOpenAndConnect(Hc,Cport,flagCrc)=1 then showmessage('Open OK') else howmessage('false');
end;
------解决方案--------------------
HANDLE &hCom这个是c++引用类型
Function RmuOpenAndConnect (var Hcomm:thandle; Cport:Pchar; flagCrc: byte ):integer;stdcall;external 'RMU900_API.dll' ;
这样试试