【问题标题】:Porting native C++ to .NET [closed]将本机 C++ 移植到 .NET [关闭]
【发布时间】:2014-05-23 15:47:29
【问题描述】:

我有一组带有本地 c++ 代码的 .cpp 和 .h 文件。我想将此代码用作用 C#、Visual Studio 2010 编写的代码中的 dll 库。

你能告诉我最好的方法是什么吗?

【问题讨论】:

  • 你可以考虑 C++/CLI。
  • 您使用 DLLImport/PInvoke 来执行此操作。 MSDN 有很多信息,pinvoke.net 也有。
  • 谢谢克里斯。是的,但是,你的意思是我应该把 C++ 代码翻译成 C++/CLI?
  • 您不需要重写 DLL 代码。您的 C# 库可以从 DLL 导入函数,无论 DLL 代码是用什么语言编写的。

标签: c# c++ visual-studio-2010 dll porting


【解决方案1】:

这是一个很好的例子,取自 this tutorial on PInvoke-ing 取自 MSDN。

// PInvokeTest.cs
using System;
using System.Runtime.InteropServices;

class PlatformInvokeTest
{
    [DllImport("msvcrt.dll")]
    public static extern int puts(string c);
    [DllImport("msvcrt.dll")]
    internal static extern int _flushall();

    public static void Main() 
    {
        puts("Test");
        _flushall();
    }
}

因此,一个很好的起点是查看Platform Invoke 或只是PInvoke
这是一个很好的教程

Platform Invoke Tutorial

  1. http://manski.net/2012/05/pinvoke-tutorial-basics-part-1/
  2. Calling Win32 DLLs in C# with P/Invoke

【讨论】:

  • 这非常接近仅链接的答案。你能提供一个“样本”pinvoke sn-p 或类似的东西来充实一下吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-09-23
  • 1970-01-01
  • 2010-11-08
  • 1970-01-01
  • 2012-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多