作者zxvc (百善孝為先)
看板C_Sharp
標題Re: [問題] managed C++使用 C#寫的DLL?
時間Sun Oct 21 23:29:16 2007
※ 引述《proach (p.roach)》之銘言:
: 我的開發環境是 Visual C++/CLI .NET Express 2005,想使用人家用 VC#
: 寫的 DLL。我發現這似乎是語言造成的問題,在 VC# DLL內提供的 class,
: 一樣的 class member funcion, 在 VC#裡面可以使用,在 managed VC++
: 內就說這是 protected member,不能access...
: 請問有什麼解法嗎?或是有什麼相關技術資料的關鍵字呢? <( )>
最近也在研究許多混合語言的問題,在MSDN海瀏覽了一下,學到一些東西,
提供你一些知識做參考。
目前我知道C++/CLI可呼叫C# netmodule,
C#可呼叫C++/CLI netmodule。
C#、C++/CLI可以編譯出assembly,但目前似乎只有C#、VB .NET可以連結assembly。
而C++/CLI要使用assembly要用#using,例如:
#using "cs_xxx.dll"
#using甚至可以用在netmodule,例如:
#using "cs_xxx.netmodule"
C++/CLI不能編出有unmanaged classes的assembly,
所謂的managed classes就是有ref修飾詞的classes,
例如:
public ref class Hello
C#只能編出library assembly,所以你的C# dll是個assembly,
並不是個native的dll。又我前面說過只有C#、VB .NET可以連結assembly,
所以你要使用#using,才可與C++/CLI interoperate。
我自己試出來可行的有:
C# executable + C++/CLI netmodule
C# executable + C++/CLI assembly
C# executable + C# assembly
C++/CLI executable + C# netmodule
C++/CLI executable + C# assembly
C++/CLI executable + C++/CLI assembly
--
往生淨土咒:
南無阿彌多婆夜 哆他伽哆夜 哆地夜他 阿彌唎都婆毘 阿彌唎哆
悉耽婆毘 阿彌唎哆 毘迦蘭哆 伽彌膩 伽伽那 只多迦隸 莎婆訶
《佛說阿彌陀經》
http://web.cc.ncu.edu.tw/~93501025/amtf.doc
《金剛經》
http://web.cc.ncu.edu.tw/~93501025/jg.doc
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.204.3
※ 編輯: zxvc 來自: 140.115.204.3 (10/22 09:22)
→ zxvc:抱歉說錯一句話。正確如黃字所示。 10/22 09:22
※ 編輯: zxvc 來自: 140.115.204.3 (10/23 00:30)
→ zxvc:今天在看ECMA-372,才知道#using不是preprocessing directive 10/23 00:30