替换应用程序DLL动态库的详细方法步骤 (gts.…

2018-06-17 21:56:58来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

在C++ builder编译器IDE软件下

1、View -Project Manageer --找到需要替换的x.dll(gts.dll)对应的x.lib(gts.lib),然后Remove
2、Project -Remove from project --查找是否dll是否任然存在,如果存在,则Remove
3、1/2两个步骤,任选其一。完成以后,编译程序可以看到类似下面的error
  [Linker Error]Unresolved external "GT_AxisOff" referenced form ...file..path...
    GT_AxisOff 是Remove掉的dll(gts.dll)里面的函数
4、删除 工程文件目录下x.dll 、x.lib、x.h x.h~   
  完成之后编译程序可以看到类似下面的error:E2209
    [C++ Error]motionCtrl_GTS.h(6):E2209 Unable to open include file 'x.h'(gts.h)   ::::::motionCtrl_GTS.h是使用到gts.h的文件
  细心的你会发现 编译出错时,项目文件\DEBUGS\下并不会有exe文件
5、删除 工程文件\DEBUGS\目录下 x.dll  、x.lib (gts.dll、gts.lib)
  完成之后编译程序可以看到和第4步一样的ErrorE2209
6、添加 新的x.dll、 x.lib  x.h 到 工程目录下
  完成之后编译程序可以看到类似下面的errorE2268:
    [c++ Error]motionCtrl_GTS.cpp(48):E2268 Call to Undefined function 'GT_SetAxisAsLaser'
      报错说明:这是因为新的gts.dll 中没有 旧版本gts.dll中函数‘GT_SetAxisAsLaser’接口,所以原本程序中使用这个函数就会报错 (这是替换dll后,进一步的更新工作)
  用心对比 第4步  和   第6步 的操作过程和编译结果
7、添加 新的x.dll 、x.lib 到 工程文件\DEBUGS\目录下
  完成之后编译程序可以看到和第6步一样的errorE2268:
  这个时候,大家注意,第 1步 或者 第2 步我们Remove 后编译报错[Linker Error] ,当我们完成 第6步 和第 7步,还没有把 (..待续..)add to project  ,也并没有报错[Linker Error]
    其实并不是不存在错误[Linker Error],而是编译流程的原因,当编译出第6步的错误时,编译器就没有深一步的编译
    假如,新的gts.dll 完全涵盖了 旧的 gts.dll ,这个时候,我们编译程序 ,便不会产生 第6步的错误, 而是产生 第1步或者 第2步完成之后编译的错误 [Linker Error]
8、Project -Add to Project  --弹出的对话框选择文件类型 ang file(*.*) 在工程文件下找到 gts.lib 点击打开
  完成之后,编译程序,会看到编译成功,没有错误
  我们打开 工程文件\DEBUGS\也可以看到 生成了项目程序的exe文件 ,双击运行 OK,没有任何问题

替换DLL的过程,完整的实现。这是我在亲自一步步操作整理的过程,希望对需要的朋友有帮助。

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Noip 2016 Day1 题解

下一篇:谭浩强 c++程序设计第一章课后习题 第10题