【问题标题】:How to write a DLL file in C? [closed]如何用 C 编写 DLL 文件? [关闭]
【发布时间】:2012-11-04 13:14:47
【问题描述】:

如何在C 中写DLL file

我在网上寻找,但我总是得到 C++ 的教程,而不是 C。我想用 C 编写我的第一个 DLL 文件。我该怎么做?一个简短的例子是什么?

【问题讨论】:

  • 构建为 Windows 动态库项目。
  • 这并不能回答问题,只是快速提醒一下:除非您有非常具体的限制,否则您宁愿在 .Net 之上用 C# 编写应用程序或库。你的代码会更健壮。调试更容易。不太容易发生内存泄漏。更容易的异常处理。你会提高生产力。
  • 我应该用 C 编写它,只需打开一个新项目并编写一个非常简单的 DLL,具有我想要的任何功能(添加 \ mul \hello world..)但就是不明白如何这样做:(
  • 无论您遵循什么 C++ 教程,都可以使用 C 进行类似操作。只是不要使用任何 C++ 特定功能(类、重载)等。而是编写 C 函数。
  • 为什么不使用为您简化流程的 IDE?像代码块一样,我相信代码块默认给出了一个例子(代码库)。

标签: c dll


【解决方案1】:

让我们开始你的第一个 DLL:

  • 启动 Visual Studio .NET。
  • 转到菜单文件 -> 新建 -> 项目
  • 选择 Visual C++ 项目,然后从 Templates 中选择 Win32 Project
  • 为您的项目命名。这将是您的最终 DLL 文件的名称。
  • 按确定。
  • Application Type 中选择DLL(在Application Settings 选项卡中)。
  • 检查Empty Project并按Finish

您需要在空白项目中附加一个空的源文件:

  • 启动解决方案资源管理器(如果未显示)。
  • 右键单击Source Files添加 -> 添加新项目,然后选择C++ File 并为其命名。
  • 请按Open

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

#include <stdio.h>
extern "C"
{
    __declspec(dllexport) void DisplayHelloFromMyDLL()
    {
        printf ("Hello DLL.\n");
    }
}
  • __declspec(dllexport) 是一个强制性前缀,它使 DLL 函数可从外部应用程序使用。

  • extern “C”(带大括号,用于范围限定)表明括号内的所有代码都可以从文件“外部”获得。尽管即使没有此语句,代码也可以编译,但在运行时,您会收到错误消息。 (我把这个留给你做实验)。

构建这个应用程序,你的 DLL 文件就准备好了。

请参阅Walkthrough: Creating and Using a Dynamic Link Library,了解有关如何进行添加和填充的更多信息。

【讨论】:

  • 我尝试了这段代码,但在 Visual c++ 中出现生成错误。
  • 完整的指南可以在这里找到:codeproject.com/Articles/9826/… 还有,底部的链接现在已经失效了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-09
  • 1970-01-01
  • 1970-01-01
  • 2013-02-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多