如何从 C++ 源代码创建 DLL,以及如何在其他源代码中使用它们?

2023-11-30

如何从 C++ 源代码创建 DLL,以及如何在其他源代码中使用它们?


DLL 是一个“动态链接库”,其工作方式与其他库非常相似,但不与可执行应用程序链接。在运行时,您可以调用特定函数来加载 DLL 并执行其导出的方法。

您可以尝试自己创建 DLL - 使用 Visual Studio 创建项目并指定 DLL。这将为您的项目创建一些基本构造,例如项目编译 DLL 的设置,以及一些用于公开方法、对象或变量的基本代码。

此时,有许多演练可以帮助您:检查这里.

所以,总结一下:

  • DLL 是一个库,您可以可以在运行时加载e.这是一个非常灵活的“插件”模型。示例:您可以在运行时以编程方式选择并加载不同的 DLL。每个 DLL 都可以是一个“插件”来提供不同的功能。

  • DLL 有一个入口点。就像命令行可执行文件的 Main 函数是入口点一样,DLL 也有一个入口点函数,当 DLL 上发生不同事件(例如加载、卸载等)时,就会调用该函数。

  • 要使用 DLL,您必须使用exportedDLL 的对象或方法。

  • 当从另一个应用程序调用这些导出函数时,非常重要的是匹配兼容类型!另外,请确保调用约定兼容

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 C++ 源代码创建 DLL,以及如何在其他源代码中使用它们? 的相关文章

  • 用于代数简化和求解的 C# 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 网络上有很多代数求解器和简化器 例如 algebra com 上不错的代数求解器和简化器 然而 我正在
  • Directory.Delete 之后 Directory.Exists 有时返回 true ?

    我有非常奇怪的行为 我有 Directory Delete tempFolder true if Directory Exists tempFolder 有时 Directory Exists 返回 true 为什么 可能是资源管理器打开了
  • 如何让 Swagger 插件在自托管服务堆栈中工作

    我已经用 github 上提供的示例重新提出了这个问题 并为任何想要自己运行代码的人提供了一个下拉框下载链接 Swagger 无法在自托管 ServiceStack 服务上工作 https stackoverflow com questio
  • 如何将非静态类成员“std::bind”绑定到 Win32 回调函数“WNDPROC”?

    我正在尝试将非静态类成员绑定到标准WNDPROC http msdn microsoft com en us library ms633573 aspx功能 我知道我可以通过将类成员设为静态来简单地做到这一点 但是 作为一名 C 11 ST
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 是否有实用的理由使用“if (0 == p)”而不是“if (!p)”?

    我倾向于使用逻辑非运算符来编写 if 语句 if p some code 我周围的一些人倾向于使用显式比较 因此代码如下所示 if FOO p some code 其中 FOO 是其中之一false FALSE 0 0 0 NULL etc
  • 在一个平台上,对于所有数据类型,所有数据指针的大小是否相同? [复制]

    这个问题在这里已经有答案了 Are char int long 甚至long long 大小相同 在给定平台上 不能保证它们的大小相同 尽管在我有使用经验的平台上它们通常是相同的 C 2011 在线草稿 http www open std
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • 如何在 32 位或 64 位配置中以编程方式运行任何 CPU .NET 可执行文件?

    我有一个可在 32 位和 64 位处理器上运行的 C 应用程序 我试图枚举给定系统上所有进程的模块 当尝试从 64 位应用程序枚举 32 位进程模块时 这会出现问题 Windows 或 NET 禁止它 我认为如果我可以从应用程序内部重新启动
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • 如何设置 log4net 每天将我的文件记录到不同的文件夹中?

    我想将每天的所有日志保存在名为 YYYYMMdd 的文件夹中 log4net 应该根据系统日期时间处理创建新文件夹 我如何设置它 我想将一天中的所有日志保存到 n 个 1MB 的文件中 我不想重写旧文件 但想真正拥有一天中的所有日志 我该如
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • 如何在非控制台应用程序中查看 cout 输出?

    输出到调试窗口似乎相当繁琐 我在哪里可以找到cout如果我正在编写非控制台信息 则输出 Like double i a b cout lt lt b lt lt endl I want to check out whether b is z
  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 不同类型指针之间的减法[重复]

    这个问题在这里已经有答案了 我试图找到两个变量之间的内存距离 具体来说 我需要找到 char 数组和 int 之间的距离 char data 5 int a 0 printf p n p n data 5 a long int distan
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装
  • WebSocket安全连接自签名证书

    目标是一个与用户电脑上安装的 C 应用程序交换信息的 Web 应用程序 客户端应用程序是 websocket 服务器 浏览器是 websocket 客户端 最后 用户浏览器中的 websocket 客户端通过 Angular 持久创建 并且
  • Oracle Data Provider for .NET 不支持 Oracle 19.0.48.0.0

    我们刚刚升级到 Oracle 19c 19 3 0 所有应用程序都停止工作并出现以下错误消息 Oracle Data Provider for NET 不支持 Oracle 19 0 48 0 0 我将 Oracle ManagedData

随机推荐

  • Java 日期格式“2010-10-11T22:10:10.000Z”

    2010 10 11T22 10 10 000Z 是什么日期格式 那是一个ISO8601日期格式 如果您希望实际解析该格式的日期 您的问题并没有真正明确您的意图 请看看these other问题
  • 需要修改开发者账号中相同设备的UDID

    我已在开发者帐户中添加了大写 UDID 现在它不允许我更改它或通过单击 添加新 添加相同的小写 UDID 我想知道该特定设备是否仍然可以由任何人使用机会 或者我需要其他 UDID 来共享构建 快速答复表示赞赏 提前非常感谢 抱歉 不可能 一
  • 如何从字符串值 Swift 中删除可选

    我想使用不带可选扩展名的字符串值 我使用以下代码从 firebase 解析此数据 Database database reference withPath Locations child Cities observe value with
  • 如何检测 javascript 元素层次结构中的循环

    我有一个元素列表 每个元素都有一个 ID 和一个父 ID 我想要做的是检测这个 层次结构 中何时存在循环 并显示哪个 ID 启动循环 list id 1 parent 2 id 2 parent 3 id 3 parent 4 This i
  • Python 方法重写,签名重要吗?

    可以说我有 class Super def method1 pass class Sub Super def method1 param1 param2 param3 stuff 它是否正确 对method1的调用总是会转到子类吗 我的计划
  • 如何在 CSV 中指定关系类型?

    我有一个 CSV 文件 其中包含以下数据 ID Name Role Project 1 James Owner TST 2 Ed Assistant TST 3 Jack Manager TST 并希望创建与项目的关系在其中指定的人员 我尝
  • matlab代码变成了不可读的符号

    我在 Matlab 中遇到了一些错误 我的代码被转换成不可读的符号字符串 我 我怀疑这对 cs 人员来说是一个简单的问题 但我只是一个正在接受学术培训的代码 最终 用户 也就是说 不幸的是 我对理论知之甚少 而且很容易忘记 我按了 ctrl
  • Angular 2:两个后端服务调用第一个服务的成功

    在我的 Angular 2 应用程序中 我有如下后端服务 getUserInterests return this http get http localhost 8080 test selections map res Response
  • 计算特定整数在数组中出现的次数[重复]

    这个问题在这里已经有答案了 如何计算特定数字在数组中出现的次数 我找不到快速的方法 有人可以指导我吗 谢谢 Xcode 9 或更高版本 Swift 4 或更高版本 在 Swift 4 中你可以使用新的 Dictionary 方法reduce
  • PHP 中的 Try/Catch 块未捕获异常

    我正在尝试从此页面运行示例 1 http php net manual en language exceptions php
  • 使用 mod_wsgi 安装 Django

    我使用 Django 1 0 编写了一个应用程序 它与 django 测试服务器配合良好 但是 当我尝试将其放入更可能的生产环境时 Apache 服务器无法运行该应用程序 我使用的服务器是WAMP2 0 我已经成为一名 PHP 程序员多年了
  • ios8 UIModalTransitionStylePartialCurl 无法正常工作

    在ios 8下使用presentViewController modalTransitionStyle UIModalTransitionStylePartialCurl消失所有页面 我希望它能像 ios 7 一样工作 我遇到了同样的问题
  • C++中限制用户只能输入实数

    如何限制用户在C 程序中只能输入实数 Example 双数 cin gt gt 数字 它不会接受如下输入 12add abcd 等 有人可以指导我吗 使用布尔值 谢谢 您不能强迫用户提供正确的输入 但如果之前的输入无效 您可以要求他们提供另
  • 如何使用具有多个 dbcontext 的实体框架迁移将不同的域类映射到同一个表

    我想使用 DDD 方法来创建我的域模型 我理解 在有界上下文中 只有该上下文所需的数据才应该可用 使用该上下文的通用语言 可以说我有一个Buyer命名空间中的类BuyerContext and a Seller命名空间中的类SellerCo
  • 如何在 Google Cloud Dataflow 中编码可为 null 的对象?

    这篇文章旨在回答以下问题 内置哪个Coder支持可为空值吗 如何对可为 null 的对象进行编码 具有可为空字段的类怎么样 收藏怎么样null条目 您可以检查内置编码器DataflowJavaSDK源码 一些默认的编码器不支持null值 通
  • C# WCF REST - 如何使用 JSON.Net 序列化器而不是默认的 DataContractSerializer?

    在 NET 3 5 中 是否可以覆盖默认的 DataContractJsonSerializer 并使用 JSON net 序列化器 NOTE 我们不想在类上使用属性 是的 可以这样做 但事情并不太简单 您将需要一个新的消息格式化程序 它使
  • 如何将 WAR 文件添加到现有的 EAR 文件中?

    有人可以向我解释如何将 WAR 文件添加到 EAR 中吗 我有一个 EAR 文件 其中已经包含一个 WAR 文件 我还有另一个 WAR 文件 我想将其添加到此 EAR 中 以便它可以包含两个 WAR 并正常工作 我不知道如何做到这一点 但我
  • 是否可以增加 ActionBarDrawerToggle(抽屉菜单)的大小?

    我跟着ActionBarDrawer切换指南 我知道如何使用在操作栏上显示抽屉图标drawerImageRes在这 public ActionBarDrawerToggle 活动活动 DrawerLayout 抽屉布局 int抽屉图像Res
  • Tensorflow shuffle batch() 块在纪元结束时

    我正在使用 tf train shuffle batch 创建批量输入图像 它包含一个 min after dequeue 参数 该参数确保内部队列中有指定数量的元素 如果没有 则阻止其他所有元素 images label batch tf
  • 如何从 C++ 源代码创建 DLL,以及如何在其他源代码中使用它们?

    如何从 C 源代码创建 DLL 以及如何在其他源代码中使用它们 DLL 是一个 动态链接库 其工作方式与其他库非常相似 但不与可执行应用程序链接 在运行时 您可以调用特定函数来加载 DLL 并执行其导出的方法 您可以尝试自己创建 DLL 使