小
小小东
Unregistered / Unconfirmed
GUEST, unregistred user!
我在DELPHI中调用C++的DLL时,如果参数中含有指针变量,运行时会提示内存出错
如C++的函数原形如下:
C++:
extern "C" __declspec(dllimport ) __stdcall long ReadRam2k(long AR_ID,char *DataBuff,long BlockFlag);
功能:读128条数据
参数:
AR_ID 外部设备编号
DataBuff 数据从此参数返回.
BlockFlag 块标志.
返回:1 数据未完并请求下一块. 0数据完成.
该函数是在一个外部设备中读取数据,因为该DLL是第三厂商提供,所以没办法看到源程序[][]
我在DELPHI中调用如下:
DELPHI
implementation
FUNCTION ReadRam2k(AR_IDWORD;DataBuffChar;BlockFlagWORD)WORD;
STDCALL;
external 'DLL文件名';
{$R *.DFM}
procedure TForm1.Button2Click(Sender: TObject);
VAR S2Char;
S1:STRING;
begin
ReadRam2k(1,S2,0);
S1:=S2;
MEMO1.Lines.Clear;
MEMO1.Lines.Add(S1);
end;
当单击按纽2时,数据能从外设返回,但数据返回的同时系统提示内存出错,望各位大虾指教
如C++的函数原形如下:
C++:
extern "C" __declspec(dllimport ) __stdcall long ReadRam2k(long AR_ID,char *DataBuff,long BlockFlag);
功能:读128条数据
参数:
AR_ID 外部设备编号
DataBuff 数据从此参数返回.
BlockFlag 块标志.
返回:1 数据未完并请求下一块. 0数据完成.
该函数是在一个外部设备中读取数据,因为该DLL是第三厂商提供,所以没办法看到源程序[][]
代码:
DELPHI
implementation
FUNCTION ReadRam2k(AR_IDWORD;DataBuffChar;BlockFlagWORD)WORD;
STDCALL;
external 'DLL文件名';
{$R *.DFM}
procedure TForm1.Button2Click(Sender: TObject);
VAR S2Char;
S1:STRING;
begin
ReadRam2k(1,S2,0);
S1:=S2;
MEMO1.Lines.Clear;
MEMO1.Lines.Add(S1);
end;
当单击按纽2时,数据能从外设返回,但数据返回的同时系统提示内存出错,望各位大虾指教