gpt4 book ai didi

c++ - 如何在C#中创建和使用dll文件

转载 作者:太空狗 更新时间:2023-10-29 20:17:54 28 4
gpt4 key购买 nike

我目前正在尝试学习如何使用 C# 和 C++ 为 Windows 编写和使用 .dll 文件。我想一旦我理解其中一种语言,我就能很容易地理解另一种语言。我今天搜索了 5 个多小时,但没有找到有效的 .dll 指南。它们要么已经过时并且拒绝使用我的编译器,要么就是彻头彻尾的垃圾。有没有人知道好的有效指南?我正在使用 Dev C++ 和 VC++ 2010。感谢您帮助我! :)

最佳答案

C# 和 C++ 中的 DLL 有所不同,尤其是在它们的使用方式上。 C# 使用程序集,其中包含各种元数据,并隐藏了大部分细节。 C++ 没有,你必须告诉它输出什么以及如何输出。

制作 DLL 通常包括编写您的代码,然后为您要使用的每个类或函数(从 DLL 外部)添加此位:

int __declspec(dllexport) function(int param);
class __declspec(dllexport) object;

这将“导出”符号,使它们从 DLL 外部可见。您只需要为将在外部使用的那些执行此操作,而对于类,只需在类(而不是每个方法)上执行此操作。

使用 DLL 时,您需要包含一个具有所有功能的 header ,但带有 __declspec(dllimport) 注释。这将告诉您的代码这些是从外部 DLL 使用的。您需要将库(在编译 DLL 时创建)作为输入文件提供给链接器,所有内容都应该对齐。

一个简单的处理方法是:

#ifndef IMPORT_MYLIB
# define MYLIB_API __declspec(dllexport)
#else
# define MYLIB_API __declspec(dllimport)
#endif

int MYLIB_API function();

在另一个应用程序中使用 DLL 时,只需#define IMPORT_MYLIB 即可正确设置 header 。

对于 C#,您只需创建一个包含公共(public)类的库,然后将其添加为对其他项目的引用。然后您可以使用它的类,这两个文件将自动链接在一起(更简单,但并不总是像 C++ 的方法那样干净)。

请注意,DLL 是特定于 Microsoft 的,并且有很多细节您以后可能会感兴趣(如何搜索导入等)。

关于c++ - 如何在C#中创建和使用dll文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5557528/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com