Codegear2009 靜態Link Class DLL 異常現象 |
答題得分者是:springLiu
|
deanmac85
一般會員 發表:13 回覆:4 積分:3 註冊:2007-05-29 發送簡訊給我 |
[1]製作 DLL : File => new => Other => Dynamic-link Library
Source Type : C Use VCL [code cpp] // LinkDLL.cpp int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved) { return 1; } //--------------------------------------------------------------------------- class __declspec(dllexport) CBook { public: CBook() ; CBook(const CBook& book) ; CBook& CBook::operator=(const CBook& book) ; virtual ~CBook() ; public: AnsiString m_szName ; int m_nIdx ; }; CBook::CBook() { m_nIdx = 0 ; } CBook::CBook(const CBook& book) { m_nIdx = book.m_nIdx ; m_szName = book.m_szName ; } CBook& CBook::operator=(const CBook& book) { m_nIdx = book.m_nIdx ; m_szName = book.m_szName ; return *this ; } CBook:: ~CBook() { } [/code] [2]製作Form1 : File => new => VCL Form Application - C Builder 最後在Form1上加上status bar 元件 [code cpp] //Main.h class __declspec(dllimport) CBook { public: CBook() ; CBook(const CBook& book) ; CBook& CBook::operator=(const CBook& book) ; virtual ~CBook() ; public: AnsiString m_szName ; int m_nIdx ; }; class TForm1 : public TForm { __published: // IDE-managed Components TStatusBar *StatusBar1; private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); CBook A; //宣告 }; [/code] 整個compiler過程都是ok的 0 error 0 worry Form 關閉時 會造成程式當掉 出現error 經過同樣的方式在bcb 6.0是ok的 經過測試結果 DLL在新開project如果不句選vcl的話 dll給 form1使用是ok的 問題出在vcl 這個有辦法排除掉嗎 還是哪邊還要做設定 使用vcl的 dll 主要目地是為了方便使用String 還是我的class宣告或使用是有錯誤的呢? 情況 只有加上status bar 沒有 CBook A宣告就OK~ 那有宣告CBook A 不加上status bar 也OK~ 就是2者不能同時存在 ~"~ 使用codegear2009 Update2 source code 如附件 |
springLiu
一般會員 發表:0 回覆:1 積分:5 註冊:2005-04-06 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |