Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.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++;来自c的代码# 我在WPF C(Visual Studio 2008)中实现了一个GUI,用于C++编写的数学模型。我可以在单个VS解决方案中完全访问这两个项目的源代码_C#_C++_Wpf - Fatal编程技术网

C# 呼叫C++;来自c的代码# 我在WPF C(Visual Studio 2008)中实现了一个GUI,用于C++编写的数学模型。我可以在单个VS解决方案中完全访问这两个项目的源代码

C# 呼叫C++;来自c的代码# 我在WPF C(Visual Studio 2008)中实现了一个GUI,用于C++编写的数学模型。我可以在单个VS解决方案中完全访问这两个项目的源代码,c#,c++,wpf,C#,C++,Wpf,我的问题是: LI>有可能从C++中调用C方法吗? 如果是,最好的选择是什么 在C++中,我需要做什么来“揭露”这个方法? 我尝试过“添加引用”,但我认为它不会像这样工作。有多种选择 最简单的选项是经常使用C++或CLI创建C++方法的包装器。然后,可以在C++项目中添加对C++ DLL的引用,并正常使用。 可选地,可以通过C API公开C++所需的方法,然后使用P/Unjk调用C语言。 < P>有多种选项。 最简单的选项是经常使用C++或CLI创建C++方法的包装器。然后,可以在C++项目中

我的问题是:

<> LI>有可能从C++中调用C方法吗?
  • 如果是,最好的选择是什么
  • 在C++中,我需要做什么来“揭露”这个方法?<李>
    我尝试过“添加引用”,但我认为它不会像这样工作。

    有多种选择

    最简单的选项是经常使用C++或CLI创建C++方法的包装器。然后,可以在C++项目中添加对C++ DLL的引用,并正常使用。


    可选地,可以通过C API公开C++所需的方法,然后使用P/Unjk调用C语言。

    < P>有多种选项。

    最简单的选项是经常使用C++或CLI创建C++方法的包装器。然后,可以在C++项目中添加对C++ DLL的引用,并正常使用。

    可选地,可以通过C API公开C++所需的方法,然后使用P/Unjk调用C++中的.< /P> < P>如果你有C++库(.dll),你可以在C中这样使用:

    [DllImport("filename.dll")]
    public static extern void MethodName(ParameterList);
    

    你可以在C代码中调用<代码>方法名称(…)>代码> < p>如果你有C++库(.dll),你可以在C中这样使用:

    [DllImport("filename.dll")]
    public static extern void MethodName(ParameterList);
    

    然后您可以在C代码中调用
    MethodName(…)

    它被称为互操作。这个词应该对你的谷歌搜索有所帮助。您可以执行C风格的声明互操作或COM对象互操作。这应该让您开始:它被称为互操作。这个词应该对你的谷歌搜索有所帮助。您可以执行C风格的声明互操作或COM对象互操作。这应该让您开始:注意,这要求<代码>方法名<代码>作为C样式方法导出(即:使用<代码>外部代码)在声明中“C/代码>”,因此它的名称不具有C++名称。请注意,将代码> >方法名< /C> >作为C样式方法导出(即:在声明中使用<代码>外部代码)C“”。所以它的名字没有得到C++名字的限制。