不同作業系統Dll調用結果卻不同 |
尚未結案
|
清心綠茶
一般會員 發表:4 回覆:4 積分:1 註冊:2004-11-23 發送簡訊給我 |
請問一下
我在Account.dll中有一個function名叫ExecuteInitial 其中Account.dpr部分
(前略)
{$R *.res}
exports
ExecuteInitial(connLocal:TADOConnection) name 'ExecuteInitial_2';
begin
end. 而在Account.pas部分
宣告段為
function ExecuteInitial(connLocal:TADOConnection):Integer;StdCall;overload;
程式碼段為
function ExecuteInitial(connLocal:TADOConnection):Integer;StdCall;overload;
begin
(省略,因為不是重點)
end; 重點來了
另一個呼叫Account.dll的程式在WindowsXP中可以正常調用這個Account.dll
但在Windows 98中卻出現無法呼叫函數的錯誤訊息
請問是為什麼?是作業系統的關係嗎? 呼叫的程式碼部分為
function ObjectInitial(connLocal:TADOConnection):integer;stdcall;overload;
var errCode : integer;
oFileName:String;
LibHandle:Thandle;
ExecuteInitial:Function(connLocal:TADOConnection):Integer;StdCall;
begin
oFileName:='Account.dll';
errCode := 0;
if FileExists(oFileName) then begin
LibHandle:=LoadLibrary(Pchar(oFileName));
@ExecuteInitial:=GetProcAddress(LibHandle,'ExecuteInitial_2');
if @ExecuteInitial = nil then begin
MessageDlg(oFileName '無法呼叫函數', mtError, [mbOK], 0);
end else begin
errCode:=ExecuteInitial(connLocal);
end;
end;
(後面省略...)
end; 發表人 - 清心綠茶 於 2005/03/17 18:38:25 發表人 - 清心綠茶 於 2005/03/17 22:29:30
|
huwk
資深會員 發表:26 回覆:340 積分:323 註冊:2002-04-03 發送簡訊給我 |
|
清心綠茶
一般會員 發表:4 回覆:4 積分:1 註冊:2004-11-23 發送簡訊給我 |
|
huwk
資深會員 發表:26 回覆:340 積分:323 註冊:2002-04-03 發送簡訊給我 |
|
清心綠茶
一般會員 發表:4 回覆:4 積分:1 註冊:2004-11-23 發送簡訊給我 |
引言: 您可以在LibHandle:=LoadLibrary(Pchar(oFileName));後先測試一下嗎? if libhandle = 0 then showmessage('LOAD ERR'); 如果連loadlibrary都沒有成功~那建議把ofilename變成全路徑~ 再不行~那98看要不要更新mdac~ 因為你有用到ado.. >>< face="Verdana, Arial, Helvetica"> 大大謝謝你的回答 我已經加了if (LibHandle = 0) then ShowMessage('無法載入Account.dll')的判斷 果然是連LoadLibrary都沒有成功 所以我又將oFileName變成完整路徑 為了確定路徑是正確的我還用ShowMessage把完整路徑show出來 結果路徑是正確的(見下面註) 但一樣在Win98出現錯誤 現在該怎麼辦? 註 完整路徑是相同的 除了大小寫不同(但在 > |
huwk
資深會員 發表:26 回覆:340 積分:323 註冊:2002-04-03 發送簡訊給我 |
|
singend
一般會員 發表:3 回覆:8 積分:2 註冊:2003-07-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |