看板 C_Sharp 關於我們 聯絡資訊
※ 引述《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