Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何链接两个用两种不同语言(如C+)编写的不同项目+;和C#in VS? 如何链接两个不同的项目,如VC++和C语言中的两种不同语言? 例如,我有一个用C++和两个数写的程序,另外一个用C语言写的程序,把两个数相乘,我想把它们连接起来。 非常感谢并致以最诚挚的问候_C#_.net_C++_Visual Studio 2008 - Fatal编程技术网

我如何链接两个用两种不同语言(如C+)编写的不同项目+;和C#in VS? 如何链接两个不同的项目,如VC++和C语言中的两种不同语言? 例如,我有一个用C++和两个数写的程序,另外一个用C语言写的程序,把两个数相乘,我想把它们连接起来。 非常感谢并致以最诚挚的问候

我如何链接两个用两种不同语言(如C+)编写的不同项目+;和C#in VS? 如何链接两个不同的项目,如VC++和C语言中的两种不同语言? 例如,我有一个用C++和两个数写的程序,另外一个用C语言写的程序,把两个数相乘,我想把它们连接起来。 非常感谢并致以最诚挚的问候,c#,.net,c++,visual-studio-2008,C#,.net,C++,Visual Studio 2008,您有两个基本选择: -仅从C#到C/C++工作,而不是相反。只能用于C API(不能通过PInvoke传递C++对象)。< /P> -C++/CLI是C++的托管版本,可以将托管代码和本机代码结合起来。使用这个,您可以在C++/CLI API中封装C++类/ API(然后可以从C语言中使用)。它的工作方式也是相反的。然而,这需要编写比PInvoke更多的代码 将您描述的方式链接起来没有多大意义,或者至少可以解释 VisualStudio中的P>当然可以有一个包含C++项目、C项目和VB.N

您有两个基本选择:

  • -仅从C#到C/C++工作,而不是相反。只能用于C API(不能通过PInvoke传递C++对象)。< /P>
  • -C++/CLI是C++的托管版本,可以将托管代码和本机代码结合起来。使用这个,您可以在C++/CLI API中封装C++类/ API(然后可以从C语言中使用)。它的工作方式也是相反的。然而,这需要编写比PInvoke更多的代码


将您描述的方式链接起来没有多大意义,或者至少可以解释

VisualStudio中的P>当然可以有一个包含C++项目、C项目和VB.NET项目的单一解决方案,也就是说,这些都是类库。构建整个解决方案,然后将所有内容编译并构建到3个独立的DLL中

<> P>如果您将控制台应用程序或Windows窗体应用程序添加到解决方案中,如果这样的项目位于C++或VB.NET中,则可以简单地将引用添加到其他项目(除了C++之外),如果不是托管CLI/C++./P>
<>使用C/V.NET中的C++项目函数,你可能需要使用DLLIMPORT.

< P>使用你的例子,最简单的选择是让一个程序运行另一个程序并在它的输出中读取。 但我怀疑这不是你想要的答案。对于本机C++和C语言,您还有三个明显的选项:

  • 用于编写/生成可从其他语言使用的COM对象
  • 编写C++与CLI代码,以实现C++代码与C代码之间的接口。如果您不需要纯本地C++代码,那么就可以用C++ +CLI
  • 编写整个C++部分。
  • 使用pPoCKE从C++调用到C++ dll中。

  • 不能链接两个可执行文件。你能做的就是将其中一个定义为DLL并将其链接到另一个。尝试定义2个项目,CSPARJ为C++,VCPRJ为C++,另一个主要(可能是)。然后在主项目和两个项目之间创建依赖项。
    是否也要从另一种语言调用该文件?

    使用一种语言创建DLL文件并在另一种语言中使用它,就可以做到这一点

    “链接”是什么意思?不,托管代码不使用链接器。使用模块是一个兔子洞。您可以通过从C#切换到C++/CLI来实现类似的功能。但语言却大不相同。将不同项目的输出放入一个文件很简单,每个人都称之为setup.exeno,只是我想创建一个包含这两个程序的.exe并打印结果!