怎样将这个函数封装成dll ,供PB调用?? function FileRead(Handle: Integer; var Buffer; Count: LongWord): Integer;主要是var buffer的处理? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var buffer: longword等于buffer: ^longword; 楼上要看清,不是var buffer: longword而是var buffer; count :longword var buffer: PChar;PChar类型在delphi和pb之间可通用。 楼主定义成这样试试buffer: pchar; 大家注意: 这是一个API函数,因为PB里对文件操作不方便,所以我想将它封装成DLL pb没有用过,delphi测试成功dll定义procedure MyFileRead(h:THandle;buf:pchar;Count:longword);stdcall;begin fileread(h, buf^,count);end;exe定义procedure Myfileread(h:THandle;buf:pchar;Count:longword);stdcall;external 'test.dll';procedure TForm1.Button1Click(Sender: TObject);var iFileHandle: Integer; iFileLength: Integer; xx: PChar;begin iFileHandle := fileopen('d:\test.txt',fmOpenRead); iFileLength := fileseek(iFileHandle,0,2); FileSeek(iFileHandle,0,0); getmem(xx,iFileLength+1); Myfileread(iFileHandle,xx,iFileLength); FileClose(iFileHandle); ShowMessage(xx); FreeMem(xx);end; 导出数据到EXCLE出错 ADO读取Excel数据的问题 50分求代码 发现李维大师的<VCL架构剖析>的一个可笑的问题!!! DBGridEH的问题,高手请进,在线等候... delphi7+wordApplication+出现内部错误 简单问题,高分!!! 初学delphi,简单问题之八 谢谢大家帮忙(急) 100分。送分,如果我把一个表的某些记录做成一个标签 硬件高手请进: 在显示弹出式对话框的时候,如何实现系统挂起? DELPHI怎么获取EXCEL文件的工作表个数呀?
buffer: ^longword;
不是var buffer: longword
而是var buffer; count :longword
PChar类型在delphi和pb之间可通用。
buffer: pchar;
dll定义
procedure MyFileRead(h:THandle;buf:pchar;Count:longword);stdcall;
begin
fileread(h, buf^,count);
end;exe定义
procedure Myfileread(h:THandle;buf:pchar;Count:longword);stdcall;external 'test.dll';procedure TForm1.Button1Click(Sender: TObject);
var
iFileHandle: Integer;
iFileLength: Integer;
xx: PChar;
begin
iFileHandle := fileopen('d:\test.txt',fmOpenRead);
iFileLength := fileseek(iFileHandle,0,2);
FileSeek(iFileHandle,0,0);
getmem(xx,iFileLength+1);
Myfileread(iFileHandle,xx,iFileLength);
FileClose(iFileHandle);
ShowMessage(xx);
FreeMem(xx);
end;