创建用于 C# 程序的 CPP DLL

Creating a CPP DLL for use in a C# program

本文关键字:CPP DLL 程序 用于 创建      更新时间:2023-10-16

所以我有一个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 组件。

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

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

  • 启动Visual Studio .NET。转到"文件>新建>项目"。
  • 选择"Visual C# 项目。...(可以选择"WPF 项目")
  • 为应用程序命名。按 OK。进入指定的 类中,插入以下两行:

[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 的引用 - 您可以使用DLLImportP/Invoke函数