全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2066
推到 Plurk!
推到 Facebook!

動態載入DLL後使用AnisString影響輸出變數

缺席
s934104
一般會員


發表:1
回覆:1
積分:0
註冊:2019-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2019-04-15 16:05:08 IP:59.125.xxx.xxx 未訂閱
小弟我正在練習使用動態載入DLL檔,
到載入完使用函式(Fun)後都沒問題,函式有正確執行,
但只要一使用AnsiString(下面程式的AAA和BBB部分)
原本輸出(result和beMod)的值都會改變。
一直找不到原因......
請問各位大大有方法避免或解決嗎?

程式碼如下:
[code cpp]
AnsiString BBB;
int (*Fun)(int, int*);
int result, beMod = 0;
(FARPROC&)Fun = GetProcAddress(hInst, MAKEINTRESOURCE (1));
if(!Fun)
{
ShowMessage("ERROR!");
return ;
}
result = Fun(2, &beMod);
AnsiString("AAA:");
BBB = result " \n " beMod;


ShowMessage(BBB);
[/code]
編輯記錄
s934104 重新編輯於 2019-04-16 11:56:39, 註解 無‧
s934104
一般會員


發表:1
回覆:1
積分:0
註冊:2019-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2019-04-16 11:58:21 IP:59.125.xxx.xxx 未訂閱
自問自答,
後來發現不是AnsiString的問題。
是宣告函是指標的時侯宣告錯誤。

int (* Fun)(int,int*);
改成 int (__stdcall * Fun)(int,int*);
就ok了。
系統時間:2024-05-08 6:06:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!