C++:#pragma comment(lib, "XXX") 实际上对“XXX”做什么?

2023-12-25

我的背景是 C#,但我必须保留一些遗留的 (MS) C++。在那个代码库中我偶然发现:

#pragma comment(lib, "OtherLib700.lib")

其中 700 是一些版本控制。除此之外,该库还有一个同名的 DLL。

我首先认为该程序将依赖于 DLL,但将其从系统中删除后,该程序仍然可以运行。不过,该 DLL 存在一个更新版本,名为 OtherLib900...

看起来程序“包含”了库的代码,因此它不再依赖于外部 DLL。 (或者程序“自动”使用较新的 DLL...)

哪一个是正确的?有没有办法进一步证实这个“假设”?


That pragma用于链接到指定的.lib文件。这是在项目设置的外部依赖项字段中指定库的替代方法。

大多数情况下,它用于支持不同的版本:

#ifdef USE_FIRST_VERSION
#pragma comment(lib, "vers1.lib")
#else
#pragma comment(lib, "vers2.lib")
#endif

当您的应用程序使用动态链接库时,lib文件告诉您有关导出的符号的信息dll。所以基本上你只需要lib编译和链接,但你需要dll运行该程序,因为它包含所有二进制代码。

你说有一个相关的dll,通常表示lib文件仅包含链接信息,没有代码。如果关联的,您应该得到一个运行时错误dll没找到。您可以向 MSVS 检查是否有不同版本的dll已加载或是否从其他位置加载。

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

C++:#pragma comment(lib, "XXX") 实际上对“XXX”做什么? 的相关文章

随机推荐

  • 使用 VBA 循环遍历文件夹中的文件?

    我想使用循环遍历目录的文件vba questions tagged vba在 Excel 2010 中 在循环中 我需要 文件名 以及 文件格式化的日期 我编写了以下代码 如果文件夹中的文件不超过 50 个 则该代码可以正常工作 否则速度会
  • 使用 Google 地图时超过 OVER_QUERY_LIMIT

    我在从应用程序访问谷歌地图时遇到问题 当我从 java 脚本循环发送超过 10 个请求时 我从地理编码器服务中收到 OVER QUERY LIMIT 异常 有什么方法可以摆脱这个问题 我尝试使用 setInterval 等给予一些时间延迟
  • iOS 8 - 设置状态栏颜色(当您的导航栏背景图像为零时)

    我在我的应用程序中使用视图寻呼机 特别是 ICViewPager 要使视图寻呼机融入导航栏 如下所示 我必须将这些代码行放入我的AppDelegate m UINavigationBar appearance setBackgroundIm
  • 递归搜索给定名称的文件,查找特定短语的实例并显示该文件的路径

    我有一堆文件夹和子文件夹 除其他外 每个文件都包含一个名为index yml与有用的数据 我想搜索所有不同的index yml文件来查找搜索字符串的实例 我必须能够看到几行上下文和目录index yml找到的文件 这几乎有效 但它没有给我文
  • 有谁知道'top'命令的结果在android中的含义吗?

    我发现 top 的结果与标准linux中的结果不同 我在网上搜索了一下 但找不到答案 例如 以下是我的android中top的部分结果 PID CPU S THR VSS RSS PCY UID Name 814 2 R 1 940K 37
  • 你用过KMP或者BM算法吗?

    我知道KMP Knuth Morris Pratt 和BM Boyers Moore 算法都是很好的字符串搜索操作算法 我还知道BM比KMP快3 5倍 在您的行业软件编程经验中 您是否使用过BM或KMP算法 算法在这里真的很重要吗 如果你看
  • 纯虚方法调用错误

    我有以下定义 class PartitioningMethod public virtual void addConstraints ConstraintManager cm 0 virtual bool hasMoreConstraint
  • Pandas:如何根据不同列的值对列元素的组合进行分组以指示共现?

    我有一个以下形式的 pandas 数据框df Batch ID Product ID 1 A 1 B 1 C 2 B 2 B 2 C 2 C 3 B 3 B 3 C 4 C 4 D 5 D 我想从中获得一个边缘列表 本质上是一个新的数据框边
  • 我可以将 Prism 用于 WinUI 3 应用程序吗?

    我想在 WinUI 3 应用程序中使用 Prism 并且我看到了 Prism v8 1 版本 此外 Prism 8 1 还为那些希望使用 Uno 平台构建本机 WinUI3 或跨平台 WinUI 3 应用程序的用户提供了新的 Prism U
  • SparkSession.sql 和 Dataset.sqlContext.sql 有什么区别?

    我有以下代码片段 我想知道这两者之间有什么区别 我应该使用哪一个 我正在使用火花2 2 Dataset
  • 如何将手动插入和JPA Id生成结合起来?

    我正在使用 arquillian 运行容器内测试 我通过添加一个来预填充数据库import sql到部署 在测试期间我想创建更多实体 不幸的是 这失败了PersistenceException javax persistence Persi
  • 如何在 Jetpack Compose Canvas 中绘制圆角多边形?

    我正在尝试使用创建一个圆角三角形Canvas在 Jetpack Compose 中 我尝试用这段代码来绘制三角形 Composable fun RoundedTriangle Canvas modifier Modifier size 50
  • Python 看门狗重复事件

    我创建了一个修改后的看门狗示例 以便监视已添加到 Windows 中特定目录的 jpg 照片文件 import time from watchdog observers import Observer from watchdog event
  • 如何从 Windows 设置环境变量

    在 windows xp 7 8 vista 10 等中添加环境变量的方法是什么 在 Windows 7 8 Vista 或 XP 中 在桌面或开始菜单中找到 我的电脑 图标 右键单击它 然后从菜单中选择 属性 项 当您看到属性对话框时 单
  • 在 Rails 中渲染 JSON 时包含关联模型

    现在我有这一行 render json programs except gt created at updated at 但是 由于程序属于公司 我想显示公司名称而不是公司 ID 渲染节目时如何包含公司名称 像这样的东西应该有效 rende
  • 如何通过 git pre-receive hook 验证用户身份

    我想写一个pre receivePython 中的 githook 据我了解 没有任何参数被传入pre receive脚本 而不是每个引用都是使用标准输入在单独的行上传递的 我已经能够通过以下方式阅读参考更改 usr bin env pyt
  • 如何创建具有静态返回类型的扩展方法?

    我试图编写一个简单的扩展方法Color返回该颜色的黑色和白色等效值的静态类 问题是扩展方法无法返回Static类型 那么 我该怎么做呢 请帮我 问题是没有方法可以返回静态类型 静态类是无状态的 或仅具有静态状态 因此只有一个 实例 可以从引
  • 对数据库中的所有表启用更改跟踪

    假设在 SQL Server 数据库上启用了更改跟踪 如何在数据库中的所有表上启用更改跟踪 您可以使用以下 T SQL 脚本生成另一个 T SQL 脚本 该脚本启用CHANGE TRACKING所有具有主键的表的功能 Step 1 Exec
  • 如何区分 jQuery 选择器字符串和其他字符串

    我想检查字符串的 类型 特别是 如何区分 jQuery 选择器字符串和其他字符串 也就是说 下面的代码中selectorTest应该如何实现呢 var stringType function value var htmlExpr lt lt
  • C++:#pragma comment(lib, "XXX") 实际上对“XXX”做什么?

    我的背景是 C 但我必须保留一些遗留的 MS C 在那个代码库中我偶然发现 pragma comment lib OtherLib700 lib 其中 700 是一些版本控制 除此之外 该库还有一个同名的 DLL 我首先认为该程序将依赖于