[問題] VC++.net製作的DLL給BCB載入

看板C_and_CPP (C/C++)作者 (業界標準)時間13年前 (2012/12/04 18:12), 編輯推噓0(006)
留言6則, 2人參與, 最新討論串1/3 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++.net framework 2.0 win32 project BCB 問題(Question): 請教一下各位先進 目前用VC++ win32 project製作DLL 這DLL會去產生一個form 其中有用到.net元件 然後在BCB裡面以LoadLibrary動態的方式去呼叫 錯誤結果(Wrong Output): 結果都會跑出一個錯誤 System.InvalidOperationException: DragDrop 登錄失敗。 ---> System.Threading.ThreadStateException: 目前的執行緒必須先設為單一執行緒 Apartment (STA) 模式, 才能進行 OLE 呼叫。請確認您的 Main 函式上已經標記有 STAThreadAttribute。 想請教各位這該怎麼解決 因為用VC++去呼叫都可以 可是用BCB就都會跑出這個錯誤視窗 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.77.159

12/04 19:51, , 1F
出錯的那個函式裡面有用DllForm^ form1= gcnew DllForm()
12/04 19:51, 1F

12/04 19:51, , 2F
form1->show();
12/04 19:51, 2F

12/04 19:53, , 3F
查了很多東西都說要設[STAThread]
12/04 19:53, 3F

12/04 19:53, , 4F
可是不知道要加哪邊
12/04 19:53, 4F
extern "c" __declspec(dllexport) int function(int a) { myDll::DllForm^ form1= gcnew DllForm(); form1->show(); ..... ..... ..... form1->Close(); } 類似這樣 ※ 編輯: tenboguang 來自: 180.177.77.159 (12/04 19:59) ※ 編輯: tenboguang 來自: 180.177.77.159 (12/04 20:01)

12/04 22:10, , 5F
好像都要用implib.exe轉成BCB可讀的lib,google很多
12/04 22:10, 5F

12/04 22:11, , 6F
不過如果一定要動態聯結的話,就....
12/04 22:11, 6F
文章代碼(AID): #1GlSoNEr (C_and_CPP)
文章代碼(AID): #1GlSoNEr (C_and_CPP)