載入DLL 執行完後出現"Invalid pointer operation"的問題 |
尚未結案
|
kugids
一般會員 發表:14 回覆:10 積分:4 註冊:2005-04-09 發送簡訊給我 |
In exe: function myFun:string;far;external 'myDLL.dll';
implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(myFun);
end; ---------------------------------------------------------------------
In DLL: library myDLL; uses
ShareMem,
SysUtils,
Classes; {$R *.res}
function myFun():string;export;
begin
result := 'Holle!Boy!';
end; exports
myFun;
begin
end. 為什麼function or precdure的型態宣告string或array就出現"Invalid pointer operation"的錯誤呢!! 救救我吧
|
yyu10
中階會員 發表:9 回覆:99 積分:96 註冊:2005-02-18 發送簡訊給我 |
首先, 打开你的测试程式的专案[View]->[Project Manager], 1. 在专案中所有的Pas文档的interface uses的最前面里加入ShareMem. 2. 专案本身有个文档(.dpr), 在这个文档最前面里加入ShareMem. 如下例,
program Test; uses ShareMem, //这可能是你漏掉的地方. Forms, SysUtils, testbed in 'testbed.pas' {TestFrm}, LogFrm in '..\MyLib\LogFrm.pas' {messageWindow}, utils in '..\MyLib\common\utils.pas', Types in '..\MyLib\Common\Types.pas'; {$R *.RES} begin DateSeparator := '/'; ShortDateFormat := 'dd/mm/yyyy'; Application.Initialize; Application.Title := 'Delphi Test'; Application.CreateForm(TTestFrm, TestFrm); Application.CreateForm(TLogFm, LogFm); Application.Run; end._________________________ Programming is a passion |
kugids
一般會員 發表:14 回覆:10 積分:4 註冊:2005-04-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |