前段时间有个同事说他的电脑突然KATE运行提示“试图加载不正确的程序”(或者提示找不到KATE_IPC2251.DLL),而他前一天用的还好好的,其他人的电脑运行都也都是正常的。感觉很奇怪。
        经过几天的反复分析,我发现原来是IPCsubplatform文件夹下的c#库IPCSdk.dll和IPCSubplatform\IPCDLL文件夹下的c++库ipcsdk.dll的名称相同,导致引用冲突了。
所以需要修改其中一个dll的名称,但因为c#的IPCSdk.dll被引用的组件太多了不便修改,所以我决定修改c++的ipcsdk.dll名称。可是我没有该库的源码,只有ipcsdk.h文件和ipcsdk.lib文件,
该c++库ipcsdk.dll是被我的另一个C++库KATE_IPC2251.DLL通过lib文件静态引用的,于是我尝试通过修改lib文件里面的dll名称来改变其依赖的dll名称。没想到还真的成功了。
具体修改方法如下。
1)用文本编辑器打开ipcsdk.lib文件,然后全部替换文件中的ipcsdk.dll名称为ipc_v5.dll(我是直接把ipcsdk字符全部替换为ipc_v5),注意替换的名称长度要和原来的保持一致,不然可能会导致lib文件损坏。
2)保存ipcsdk.lib文件,并重新编译KATE_IPC2251项目。
3)修改IPCSubplatform\IPCDLL目录下的ipcsdk.dll文件的名称为ipc_v5.dll。
大功告成!!!

dll名称相同引发的奇葩问题相关推荐

  1. 修改lib库对应的dll名称

    修改lib库对应的dll名称 在某些场景下,我们需要修改lib库对应的dll名称,如果直接使用notepad++等工具打开lib文件,修改其中的dll名称会直接导致lib文件破坏,vs编译报错.既然不 ...

  2. 巧妙修改vc++生成的dll名称

    笔者在工作中曾经遇到客户想要修改我方提供的dll的名称情况,笔者想要原来的工作不受影响,就创建了一个新的配置方案,假定原来的dll名称为mydll.dll,用户要求的dll名称为custom.dll, ...

  3. 获取程序所有加载的dll名称

    1.在任务管理器输入如下指令.输出到文件:tasklist /m >c:\dll.txt 输出到命令行 tasklist /m 2.使用工具软件https://files.cnblogs.com ...

  4. H3C交换机引发的奇葩故障

    设备:H3C S5120-28P-SI 故障:某个交换机的接口速率只有100Mbps. 描述:这个故障还是很特别的,因为按普通的测试办法很难第一时间判断是交换机的固件问题,我也是做了几乎所有外围设备和 ...

  5. CMD 命令速查手册

    CMD 命令速查手册 ASSOC 显示或修改文件扩展名关联. ATTRIB 显示或更改文件属性. BREAK 设置或清除扩展式 CTRL+C 检查. BOOTCFG 设置 boot.ini 文件的属性 ...

  6. 内核分析PE获取DLL导出函数地址

    环境:VS2012+WIN8 64 类型:C++编写的WDM驱动程序 测试:VM WIN7 用途:主要用于驱动程序中得到WIN32 API地址,也可得到自定义的DLL中的函数导出地址,记录内核文件相关 ...

  7. C#调用dll中的函数

    C#调用dll中的函数 文章分类:操作系统 文章来源:http://blog.csdn.net/strmagic/archive/2007/11/02/1863462.aspx 大家在实际工作学习C# ...

  8. 为无LIB的DLL制作LIB函数符号输入库zz

    副标题: 作者:wuhongyi 文章来源:本站原创 点击数: 更新时间:2004-11-2 本文介绍了在VC中针对无LIB时的DLL隐式链接,制作可供VC++使用的LIB函数符号输入库.具体步骤如下 ...

  9. ntdll.dll学习总结

    ntdll.dll ntdll.dll描述了windows本地NTAPI的接口.是重要的Windows NT内核级文件.当Windows启动时,ntdll.dll就 驻留在内存中特定的写保护区域,使别 ...

最新文章

  1. 华为将开源挑战 Oracle 的 AI 原生数据库 GaussDB
  2. python爬虫模块取cookie_[ Python爬虫实战 ] Python使用cookies - pytorch中文网
  3. wordpress更新时需要ftp的解决方法
  4. php excel文件导出之二 图像导出
  5. vi 从第几行到第几行 替换_第三十三章:查找新函数:XLOOKUP,再也不用趴着电脑屏幕数第几列、第几行(二)...
  6. jqueryppt_jquery简单实现幻灯片的方法
  7. Stream流综合练习
  8. SAP Spartacus里的产品主数据显示的数据源
  9. Task.Factory.StartNew 和 Task.Factory.FromAsync 有什么区别?
  10. C语言学习及应用笔记之六:C语言extern关键字及其使用
  11. java 1.7 linux rpm,linux下用rpm 安装jdk 7的jdk-7u79-linux-x64.rpm
  12. [Leetcode]-- Valid Number
  13. 计算1970距今的秒数
  14. 配置了tomcat,更改了默认端口为8070,还是访问不了
  15. 桃李春风一杯酒,江湖夜雨十年灯
  16. log4cpp 用法
  17. 空号筛选接口的应用场景
  18. 数据库学习整理之常见运算符
  19. 酷睿i9 12900HX性能怎么样 i912900hx相当于桌面什么cpu
  20. 苹果手机投屏linux电脑,iphone怎么投屏到电脑?苹果手机投屏到电脑图文教程

热门文章

  1. too many unprocessed floats
  2. 普歌-浅谈RabbitMQ
  3. 批处理中出现错误: batch must be either executed or cleared
  4. 软件构建_认为独特的构建正确的软件而不是简单的软件
  5. 致远OA表单自定义函数(计算N年后今天的日期 )
  6. App Clips简介以及demo演示
  7. 安卓手机如何投屏到电视上_安卓和苹果手机投屏到智能电视方法
  8. 【避坑指“难”】页面Top置顶(返回顶部)小图标实现逻辑
  9. 联想小新14Pro Ubuntu20.04 键盘失灵
  10. 客户案例:使用点星PBX进行电话自助水费查询TTS语音播报原理