繁体   English   中英

如何在ac#程序中使用C dll

[英]How to use a C dll within a c# program

我有一个.c和.h文件被修改为在cpp应用程序中使用,实际上他们有

#ifdef __cplusplus
       extern "C"{
#endif 

预处理线。 我想知道是否以及如何使用ac#program中定义的函数。 也许我必须为这段代码创建一个DLL?

这是一个从MSDN获取的简单示例:

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();
    }
}

假设您愿意将现有代码编译为.DLL

你们似乎没有得到它 - 他没有dll,他有c ++源文件:

你有两个选择

  1. 将c ++代码转换为C#并将其直接合并到您的应用程序中

  2. 使用c ++编译器从源文件创建一个dll,并使用PInvoke访问它

如果您需要修改c ++代码来创建dll或使其可以从C#访问,我们无法在不发布完整代码的情况下知道。

这是MSDN博客上的一个明显示例。 您可以使用IntPtr加载DLL路径。

http://blogs.msdn.com/b/jonathanswift/archive/2006/10/03/dynamically-calling-an-unmanaged-dll-from-.net-_2800_c_23002900_.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM