DLL返回值的問題(50分)

  • 主题发起人 主题发起人 stuwe
  • 开始时间 开始时间
S

stuwe

Unregistered / Unconfirmed
GUEST, unregistred user!
在dll文件中有一個函數返回一字符串,
在調用的時候,可以返回,過後就出現錯誤
exception class EInvalidPointer with message 'Invalid pointer operation'.

在dll中函數是這樣的
function ServerDate():string;
begin
Result:=formatdatetime('yyyy-mm-dd hh:mm:ss',now);
end;

在調用的時候
ShowMessage(ServerDate);//這一句可以政黨顯示信息,後面沒有代碼
顯示完後就出現那個異常
 
写一个事件就OK了
 
要加sharemem
在工程文件第一个uses处
或者用pchar类型
 
to:52free
在那裡加呢
 
工程文件的那个地方啊
给个例子给你吧
program Project1;

uses
sharemem,
Forms,
Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
 
to:52free
改為pchar型就可以
但加sharemem,不行,
 
要想通用,还是用PCHAR, 加sharemem的话,只能DELPHI用
 
to:Milpas
為什麼呢?
 
以为Delphi的字符串和别的语言存储不一样
 
改String为Pchar型
 
可以看看新建dll文件前的提示。我也在学习。
 
多人接受答案了。
 
后退
顶部