将本机 C++ 移植到 .NET [关闭]

Posted

技术标签:

【中文标题】将本机 C++ 移植到 .NET [关闭]【英文标题】:Porting native C++ to .NET [closed] 【发布时间】: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 代码是用什么语言编写的。 【参考方案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

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

【讨论】:

这非常接近仅链接的答案。你能提供一个“样本”pinvoke sn-p 或类似的东西来充实一下吗?

以上是关于将本机 C++ 移植到 .NET [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将 Visual C++ 项目移植到 C# [关闭]

将源代码从 Visual C++ 移植到 GCC 都有哪些陷阱[关闭]

将 32 位 C++ 代码移植到 64 位 - 值得吗?为啥?

将 Unix 套接字移植到 Windows [关闭]

如何将 RPC XDR 从 UNIX 移植到 Windows? [关闭]

将 C# 桌面应用程序移植到 Web