在c+项目中使用c#dll+; 我想在C++项目(VisualStudio 2003)中使用C语言(VisualStudio 2008)中的DLL。怎么做?请Heelelp< P>不能直接使用非托管C++代码中的.NET程序集。一种可能的解决方案是使用实用程序将程序集公开为COM对象,然后从C++中使用它。请注意,需要作为COM对象公开的.NET类型可能需要用属性来修饰,并且仍然需要在运行C++代码的目标计算机上安装.NETFramework。 < P>有很多方法可以做到这一点。p>
C#DLL是COM DLL吗?如果是这样,你可以使用常规的COM API /规范来访问C++程序。有许多教程介绍如何使C#DLL COM可见。这并不难,基本上有一些编译开关和C#属性在c+项目中使用c#dll+; 我想在C++项目(VisualStudio 2003)中使用C语言(VisualStudio 2008)中的DLL。怎么做?请Heelelp< P>不能直接使用非托管C++代码中的.NET程序集。一种可能的解决方案是使用实用程序将程序集公开为COM对象,然后从C++中使用它。请注意,需要作为COM对象公开的.NET类型可能需要用属性来修饰,并且仍然需要在运行C++代码的目标计算机上安装.NETFramework。 < P>有很多方法可以做到这一点。p>,c#,c++,C#,C++,C#DLL是COM DLL吗?如果是这样,你可以使用常规的COM API /规范来访问C++程序。有许多教程介绍如何使C#DLL COM可见。这并不难,基本上有一些编译开关和C#属性 另外,您能使用编译器开关编译C++项目吗?如果是这样,您可以使用直接导入C#DLL。生成库文件[.Tlb]文件,然后只有我们可以使用DLL。您必须对原始c#DLL创建.TLB(类型库文件),并在VC++代码中使用该.TLB库。为此,您必须在pc上注册.TLB文件,并且有必要在vc++应用程序中导入该.TLB文件。
<>另外,您能使用编译器开关编译C++项目吗?如果是这样,您可以使用直接导入C#DLL。生成库文件[.Tlb]文件,然后只有我们可以使用DLL。您必须对原始c#DLL创建.TLB(类型库文件),并在VC++代码中使用该.TLB库。为此,您必须在pc上注册.TLB文件,并且有必要在vc++应用程序中导入该.TLB文件。
编写C#DLL时,请记住使用将在类中实现的接口。正如Darin所说,一种方法是通过COM。其他两种方式(我知道)是:
- 这要困难得多,但您也可以托管CLR。谷歌为“CLR托管”查找有关API或示例的详细信息
<强> 2.2:如何调用来自Visual C++的.NET程序集?< /强>
基本上有四种方法来解决这个问题 从本机VC调用.NET程序集++ 代码。微软有这样的例子 演示这些方法#using <NiftyAssembly.dll>
#使用
可能重复的@0xA3:我很好奇,VC++2008如何让事情变得更简单?在VC 2003中编译的代码可以包含COM组件,它可以包括任何类型的本地包装DLL,即使它是用VC2008编写的,对.@ NIKIE:据我所知,VC++/CLR选项将要求C++和C.Y.DLL都使用相同的.NET运行时版本。VS2003仍然以旧的.NET 1.1为目标。@0xA3:True,但他可以在VC 2008中编写C++/CLR包装DLL,并将其包含在现有的VC2003项目中,而无需升级现有项目。