c# - 创建用于 C# 程序的 CPP DLL

标签 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 的引用时,我收到此错误。

"A reference to 'C:\DIR\testcppdll.dll' could not be added. Please make sure that the file is accessible, and that it is a valid assembly or COM component."

最佳答案

如果您查看您引用的示例:

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

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

[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 的引用 - 您使用 DLLImport

P/Invoke 函数

关于c# - 创建用于 C# 程序的 CPP DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22240702/

相关文章:

c# - 来自 Visual Studio 背景,你推荐我使用什么来开始我的第一个 Python 项目?

c# - session 状态提供程序性能比较

c++ - 使用 LoadLibrary 加载 dll

c#类库使用文件

c# - 测试使用 FromServicesAttribute 填充的属性

c# - 将 ShowDialog 之类的东西添加到自定义用户控件中?

c++ - Visual Studio 调试器/无法加载数据文件

c++ - 代码中的堆损坏

c++ - 这是传递可选/空 shared_ptr 参数的好习惯用法吗?

c++ - 运行时动态加载库时报错 "unresolved external symbol"