65.9K
CodeProject 正在变化。 阅读更多。
Home

如何在 C# 中创建 DLL 库,然后在 C# 中使用它

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.66/5 (84投票s)

2005 年 3 月 14 日

2分钟阅读

viewsIcon

736052

downloadIcon

9652

一个简单易用的例子,展示了如何在 C 语言中创建 DLL 库,然后在 C# 中使用它。

引言

在花了一些时间试图实现这个简单的任务之后,我开始在互联网上搜索类似的代码示例。 我真的很惊讶地发现,所有例子都与我需要的略有不同。 最后,我意识到没有(至少在网上花了 30 分钟)一个简单易用的例子,所以我决定写这篇文章。

假设你已经知道什么是 DLL,让我们开始创建一个简单的 DLL。

  1. 启动 Visual Studio .NET。
  2. 转到文件->新建->项目。
  3. 选择 Visual C++ 项目,然后从“模板”中,选择“Win32 项目”。
  4. 给你的项目命名。 这将是你的最终 DLL 的名称(在我的例子中:TestLib)。
  5. 按“确定”。
  6. 从“应用程序类型”(“应用程序设置”选项卡)中选择“DLL”。
  7. 选中“空项目”(我们需要从头开始创建我们的项目,对吗?),然后按完成。

好的,现在我们应该将一个空的源文件附加到我们的空白项目。

  1. 启动解决方案资源管理器(如果未显示)。
  2. 右键单击“源文件”,添加->添加新项目,然后选择“C++ 文件”并为其命名。
  3. 按“打开”。

在打开的窗口中,输入以下代码

#include <stdio.h>

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

请注意,__declspec(dllexport) 是一个强制性的前缀,它使 DLL 函数可以从外部应用程序访问。

extern “C” (带括号)也非常重要,它表明括号内的所有代码都可以从“外部”访问。 尽管代码即使没有此语句也可以编译,但在运行时,你会收到一个非常令人不快的错误。 所以,不要忘记包含它。

构建此应用程序,你的 DLL 就可以使用了。

现在是时候创建一个将使用我们的 DLL 的应用程序了,正如主标题所解释的那样。 我们将使用 Microsoft 的 C# 创建这种类型的应用程序。

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

  1. 启动 Visual Studio .NET。
  2. 转到文件->新建->项目。
  3. 选择 Visual C# 项目。 从“模板”中,你可以选择“控制台应用程序”或“空项目”,就像上面描述的那样。
  4. 给你的应用程序命名。
  5. 按“确定”。

在指定的类中,插入以下两行

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

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

请注意,System.Runtime.InteropServices 是与 DLL 进行操作所必需的。

根据 MSDN

System.Runtime.InteropServices 命名空间提供了一组有用的类,用于从 .NET 访问 COM 对象和本机 API”

好的,现在构建此应用程序,然后将先前构建的 DLL 复制到当前应用程序的Debug/Release 目录中。 DLL 应该与你的主应用程序位于同一目录中。

现在启动应用程序。 如果你所做的一切都是正确的,你应该得到这样的结果

就是这样,真的很简单,不是吗?

© . All rights reserved.