VC中的DLL文件是这样的:
extern "C" __declspec(dllexport) int OpenPort(int i)
{
DWORD dwBaud = 9600;
unsigned short retval;
int iport;
iport = i; retval = OpenPort(iport,dwBaud,0,&devNo);//已经封好的库的函数
if(retval==0x9000)
{
retval=SetTimeout(devNo,1000,0);
isOpen=true;
retval=0;
return retval;
}else
{
return retval;
}}delphi中这样调用的:
Function OpenPort(i:integer):integer;stdcall;External 'Test.dll'; //打开串口procedure TForm1.Button2Click(Sender: TObject);
var
iCom:integer;
begin
if isOpen = true then
begin
Edit1.Text := 'OpenPort Opened!';
Exit;
end;
iCom := 1;
try
Ret := OpenPort(iCom,0);
except
end;
if Ret <> 0 then
Edit1.Text := 'OpenPort Error!'
else
begin
Edit1.Text := 'OpenPort Success!';
isOpen := true;
end;
end;在delphi中只要过程执行完了就报:Unhandled exception in Project1.exe:0xC00000005 :Access Violation.错误,我看了又看,是在想不到哪里的内存地址有错了,大侠们救救啊!!
extern "C" __declspec(dllexport) int OpenPort(int i)
{
DWORD dwBaud = 9600;
unsigned short retval;
int iport;
iport = i; retval = OpenPort(iport,dwBaud,0,&devNo);//已经封好的库的函数
if(retval==0x9000)
{
retval=SetTimeout(devNo,1000,0);
isOpen=true;
retval=0;
return retval;
}else
{
return retval;
}}delphi中这样调用的:
Function OpenPort(i:integer):integer;stdcall;External 'Test.dll'; //打开串口procedure TForm1.Button2Click(Sender: TObject);
var
iCom:integer;
begin
if isOpen = true then
begin
Edit1.Text := 'OpenPort Opened!';
Exit;
end;
iCom := 1;
try
Ret := OpenPort(iCom,0);
except
end;
if Ret <> 0 then
Edit1.Text := 'OpenPort Error!'
else
begin
Edit1.Text := 'OpenPort Success!';
isOpen := true;
end;
end;在delphi中只要过程执行完了就报:Unhandled exception in Project1.exe:0xC00000005 :Access Violation.错误,我看了又看,是在想不到哪里的内存地址有错了,大侠们救救啊!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货