新手DLL中PChar类型调用请教

xmask 2003-10-28 01:35:20
最近本人学习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"。请大家指教,小弟感激不尽。
...全文
60 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xmask 2003-10-28
  • 打赏
  • 举报
回复
多谢各位,问题已经解决,但是还有内存泄漏的问题,继续学习中。
zklove 2003-10-28
  • 打赏
  • 举报
回复
我想他用var型是为了回传一个值给调用程序,在DLL中如果要回传参数一定要用指针的.
至于楼主的问题,希望能贴完全,至少也要把调用程序的调用这一部分贴出来
snowfog 2003-10-28
  • 打赏
  • 举报
回复
1、function CheckValid(var pstr: PChar): Boolean; stdcall;中的pstr参数一定要用var型的吗?
2、还可以试一下Stdcall,Cdecl等几种方式。
xiangwangz 2003-10-28
  • 打赏
  • 举报
回复
老兄,你也帮它全贴出来呀

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧