最近本人学习DLL,写了一个DLL的程序如下:library Project2;
...
uses
SysUtils,
Classes,
Unit1 in 'Unit1.pas';
{$R *.res}
exports
CheckValid ;
begin
end.
----------------------
unit Unit1;
interface
uses
Dialogs;
function CheckValid(var pstr: PChar): Boolean; stdcall;
implementation
function CheckValid(var pstr: PChar): Boolean;
begin
ShowMessage(pstr);
Result := true;
end;
end.
----------------------
编译为DLL后用PB调用,每次都提示"xxxx"指令引用的"xxxx内存。该内存不能为"read"。请大家指教,小弟感激不尽。
...
uses
SysUtils,
Classes,
Unit1 in 'Unit1.pas';
{$R *.res}
exports
CheckValid ;
begin
end.
----------------------
unit Unit1;
interface
uses
Dialogs;
function CheckValid(var pstr: PChar): Boolean; stdcall;
implementation
function CheckValid(var pstr: PChar): Boolean;
begin
ShowMessage(pstr);
Result := true;
end;
end.
----------------------
编译为DLL后用PB调用,每次都提示"xxxx"指令引用的"xxxx内存。该内存不能为"read"。请大家指教,小弟感激不尽。
2、还可以试一下Stdcall,Cdecl等几种方式。
至于楼主的问题,希望能贴完全,至少也要把调用程序的调用这一部分贴出来