创建用于C#程序的CPP DLL

时间:2014-03-07 03:12:43

标签: c# c++ dll

所以我有一个WPF解决方案。我添加了一个新项目,并为其添加了一个CPP Dll项目。

我用过这个例子。很直接。

http://www.codeproject.com/Articles/9826/How-to-create-a-DLL-library-in-C-and-then-use-it-w

这是我的代码

  

CppTestDll.cpp

#include <stdio.h>

extern "C"
{
    __declspec(dllexport) void DisplayHelloFromDLL()
    {
        printf("Hello from DLL !\n");
    }
}

当我构建这个时,我确实得到了一个DLL

现在,当我进入我的WPF应用程序并尝试添加对此DLL的引用时,我收到此错误。

  

“无法添加对'C:\ DIR \ testcppdll.dll'的引用。请   确保该文件可以访问,并且它是一个有效的程序集   或COM组件。“

1 个答案:

答案 0 :(得分:2)

如果你看一下你引用的例子:

创建一个简单的C#应用​​程序:

  • 启动Visual Studio .NET。转到文件 - &gt;新建 - &gt;项目。
  • 选择Visual C# 项目。 ... (您可以选择WPF项目)
  • 将名称提供给您的申请。按确定。进入指定的 class,插入以下两行:

[DllImport("TestLib.dll")] public static extern void DisplayHelloFromDLL ();

在C#中,关键字extern表示该方法是在外部实现的。

您的代码应如下所示:

using System;
using System.Runtime.InteropServices;     // DLL support

class HelloWorld
{
    [DllImport("TestLib.dll")]
    public static extern void DisplayHelloFromDLL ();

    public  void SomeFunction()
    {
        Console.WriteLine ("This is C# program");
        DisplayHelloFromDLL ();
    }
}

您没有添加对DLL的引用 - 您使用P/Invoke

DLLImport功能