作者chengcti (卡馬請出來面對!!)
看板C_and_CPP
標題Re: [問題] VC++.net製作的DLL給BCB載入
時間Tue Dec 4 20:48:46 2012
Application 請加上
CoCreateInstance() 在最開始的地方
managed component call by unmanaged application
REF:
http://msdn.microsoft.com/zh-tw/library/zsfww439%28VS.90%29.aspx
※ 引述《tenboguang (業界標準)》之銘言:
: 開發平台(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: 114.44.244.117
推 tenboguang:謝謝 12/04 21:08
→ tenboguang:對了CoCreateInstance(這裡參數嗎); 12/04 21:09
推 tenboguang:請問是CoCreateInstance(clsid,....,(void**)&form1); 12/04 22:03
→ tenboguang:然後在去myDll::DllForm^ form1= gcnew DllForm(); 12/04 22:04
→ tenboguang: form1= gcnew DllForm(); 12/04 22:04
→ tenboguang: form1->show(); 12/04 22:05
→ tenboguang:myDll::DllForm^ form1這在最前面這樣嗎 12/04 22:06