作者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)
1F:→ zxvc:抱歉说错一句话。正确如黄字所示。 10/22 09:22
※ 编辑: zxvc 来自: 140.115.204.3 (10/23 00:30)
2F:→ zxvc:今天在看ECMA-372,才知道#using不是preprocessing directive 10/23 00:30