如何在VS中链接用两种不同语言编写的两个不同项目,如C ++和C#? 例如,我有一个用c ++编写的程序和两个数字,另一个用C#编写的程序乘以两个数字,我想在VS中将它们链接在一起。 非常感谢和最好的关注
答案 0 :(得分:0)
您有两个基本选项:
PInvoke - 仅适用于C#到C / C ++,而不是其他方式。只能用于C API(不能通过PInvoke传递C ++对象)。
C++/CLI wrapper - C ++ / CLI是C ++的托管版本,可以组合托管代码和本机代码。使用它,您可以在C ++ / CLI API(可以从C#中使用)中包装C ++类/ API。 IT也是另一种方式。然而,这涉及编写比PInvoke更多的代码。
答案 1 :(得分:0)
链接你描述它的方式没有多大意义,或者至少可以解释。
在Visual Studio中,您肯定可以拥有一个包含C ++项目,C#项目和VB.NET项目的解决方案,假设这些都是类库。您构建了整个解决方案,并将所有内容编译并构建到3个独立的DLL中。
然后,如果您将解决方案应用程序或Windows窗体应用程序添加到解决方案中,如果此类项目位于C#或VB.NET中,则只需将引用添加到除C ++之外的其他项目(如果它不是托管CLI) / C ++。
使用C#/ VB.NET中的C ++项目的功能,您可能需要使用DLLImport。
答案 2 :(得分:0)
使用你的例子,最简单的选择可能是让一个程序运行另一个程序并读入它的输出。
但我怀疑这不是你要找的答案。对于本机C ++和C#,您还有其他三个明显的选项:
答案 3 :(得分:0)
你无法链接两个可执行文件。你可以做的是将其中一个定义为DLL并将其链接到另一个。尝试定义2个项目,C#的csporj,C ++的vcproj和另一个main(也可以是)。然后在main和两个项目之间创建依赖关系。 你还想打电话给另一个吗?
答案 4 :(得分:0)
用一种语言创建DLL文件并在另一种语言中使用它可以做这个受害者。