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

呼叫自己寫的DLL檔發生問題

缺席
kulkulkul2003
一般會員


發表:2
回覆:1
積分:0
註冊:2006-11-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-11-04 23:09:05 IP:220.134.xxx.xxx 訂閱
各位大大:
目前我自己寫了DLL檔....也呼叫成
但現在遇到一個問題....因為函式傳出的值為String....
所以執行使用會有問題發生
經我查詢後發現以下文章.... 可以解決我的問題
但小弟已把MEMMGR.LIB與BORLNDMM.DLL加入Project
但還是會發生問題,
可否能有人告訴我以下文章紅色字體的步驟該如何進行?....
謝謝!
[以下為參考文章內容]
以下這段內容摘自"深入C Builder 探訪動態連結函式庫(Dynamic Linking Libraries,DLLs)"
http://www2.borland.com.tw/tw/td001018.html

按完OK或Finish後你會看到DLL Project與些許程式碼的產生,這段由C Builder自動產生的程式碼中分兩大部分,第一部份是個很長一串的註解,最後就是所謂的DLL進入點。先來了解這一長串的註解,由方法一與方法二製造出來的DLL Project註解有點不相同,不過內容大致上差不多,內容如是說:如果我們的DLL內使用到了字串物件如:AnsiString,或是在輸出函式的參數或回傳值使用到長字串的話,就必須加入MEMMGR.LIB這個函式庫。另外,若我們在另一個模組(如DLL)中使用了例如new或GetMem等方法來配置記憶體,而在不同的模組(如EXE應用程式)中使用了這塊記憶體或呼叫FreeMem等方法來釋放記憶體,則MEMMGR.LIB也是必須被加入的。此外還有一個值得注意的,就是MEMMGR.LIB必須加在所有要用到函式庫的最前頭,以便在其他函式庫之前優先載入並接手相關的記憶體維護。同時要記住的是若你使用了MEMMGR.LIB這個函式庫,那麼當你移交DLL或是應用程式時,你必須連同BORLNDMM.DLL一併移交給使用者。不過在這段聲明的倒數第二段中有提到,若要避免額外的檔案付給使用者(越多的檔案對使用這來說是一種負 擔),你可以將有關字串的資料改由char *或是shortstring來傳送,這樣可以不動用到BORLNDMM.DLL與MEMMGR.LIB來作記憶體的配置。另外,聲明的最後一段中有提到,若你在Project\Options裡頭的Link一頁勾選了Use Dynamic RTL一項時,就不須額外手動將MEMMGR.LIB給加到Project裡頭了,因為C Builder會自動幫你做這個動作


justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-11-09 20:56:13 IP:59.105.xxx.xxx 未訂閱
Project -> Add to Project
加入你要的lib檔

Project -> Edit Option Source
編輯LIBFILES 這一行,調整其順序

但你這篇文章的最後,有提到有勾選Use Dynamic RTL,BCB就會自動幫你載入該DLL了,這樣嘗試是無效的嗎?
kulkulkul2003
一般會員


發表:2
回覆:1
積分:0
註冊:2006-11-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-11-09 21:32:33 IP:220.134.xxx.xxx 訂閱

===================引 用 文 章===================
Project -> Add to Project
加入你要的lib檔

Project -> Edit Option Source
編輯LIBFILES 這一行,調整其順序

但你這篇文章的最後,有提到有勾選Use Dynamic RTL,BCB就會自動幫你載入該DLL了,這樣嘗試是無效的嗎?
謝謝回覆:
但我去看內容如下:
LIBFILES value="memmgr.lib String_Run.lib"
String_Run.lib是我自己的lib....
memmgr.lib排第一
這樣子試出來還是有問題....
程式會當....出現錯誤訊息

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