美文网首页
Comctl32.dll导致的无法定位序数345于 xxx.ex

Comctl32.dll导致的无法定位序数345于 xxx.ex

作者: 赵海洋 | 来源:发表于2024-03-11 19:59 被阅读0次

一个控制台程序,因为引用的lib中的某些代码,也静态链接了 comctl32.dll, 但启动时会报下面错误:

image.png

但奇怪的是引用同样库的其它带界面的几个程序并未出现同样错误,使用工具发现控制台程序链接到的是 C:\windows\system32\Comctl32.dll, 而未出错的链接到的是

C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22000.120_none_9d947278b86cc467\comctl32.dll

也就是说某种因素导致了它们链接到了不同的dll,而系统中的这个又缺少了导出函数345.

再使用工具对比,它们的manifest不同,正常的界面程序中已经包含了'6.0.0.0' 版本的'Microsoft.Windows.Common-Controls',而控制台程序则未包含.

所以以某个公共头文件中添加下面代码解决这个问题.

#if defined _M_IX86
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_IA64
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif

相关文章

  • 福彩3D第2018092推荐

    定位星:* * 345

  • [LeetCode OJ]-Reverse Integer

    这道题是给定一个int的数字,如123456,求它的逆序数,即654321 其中,负数的情况是-345的逆序数是-...

  • 双指针

    双指针问题总结 双指针经典问题 twoSum (有序数组) 字符串翻转 先看一个例子: leetcode 345....

  • 2020-09-03 android 设备ble扫描到设备

    蓝牙扫描不到ble低功耗设备,定位权限已经打开,但是因为设备关闭了定位服务,所以导致无法搜索到设备 Cannot ...

  • 福彩3D20192期推荐 -

    上期回顾,百位定位345开5正确,个位671开7正确,定位5**正确,绝杀一码:1正确 今日推荐: 百位定位:49...

  • 蓝牙问题集锦

    扫描蓝牙 手机锁屏状态下,后台服务无法扫描蓝牙设备频繁扫描,导致扫描蓝牙失败定位服务关闭时,后台无法扫描蓝牙

  • iOS开发---解析json出错 NSCocoaErrorDom

    最近线上版本发现一个页面无法正常显示数据,经过排查,定位到是接口返回的json有问题,导致无法正确解析。 解决办法...

  • Wednesday:不太顺利的日子

    今天上班又因为网络和手机定位的问题,导致共享单车无法开锁而快要迟到。 起先选择的是支付宝哈啰单车,无法使用,随后又...

  • 分析流程

    基因组重测序数据目的:需要检测基因组中的变异,找到并定位这些突变位点 条件:参考基因组、重测序数据、 分析流程: ...

  • 如何使用git

    1.定位、 cd (文件夹) 2.git init (******** 如上传第二个项目则忽略345步 ***...

网友评论

      本文标题:Comctl32.dll导致的无法定位序数345于 xxx.ex

      本文链接:https://www.haomeiwen.com/subject/rqimzdtx.html