在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的过程,完整的实现。这是我在亲自一步步操作整理的过程,希望对需要的朋友有帮助。

替换应用程序DLL动态库的详细方法步骤 (gts.dll为例)的更多相关文章

  1. 应用程序调用dll动态库,参数有vector时崩溃的问题

    引用:http://blog.csdn.net/guoliushui/article/details/43017339 今天跟同事遇到了一个问题,问题背景: 一个动态库Tst.dll: 一个应用程序A ...

  2. 2017.10.29 C/C++/C#程序如何打成DLL动态库

    C/C++程序如何打成DLL动态库: **1.在VS中新建main.h,添加如下内容:** extern "C" _declspec(dllexport) int onLoad() ...

  3. C/C++/C#程序如何打成DLL动态库

    C/C++程序如何打成DLL动态库:1.在VS中新建main.h,添加如下内容:extern "C" _declspec(dllexport) int onLoad(); 2.新建 ...

  4. Delphi调用C# 编写dll动态库

    Delphi调用C# 编写dll动态库 编写C#dll的方法都一样,首先在vs2005中创建一个“类库”项目WZPayDll, using System.Runtime.InteropServices ...

  5. .NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper

    .NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper 參考演示样例代码,例如以下所看到的: /// <summary> /// MySql ...

  6. Java调用dll动态库

    最近项目里使用java调用dll动态库,因此研究了一下这方面的东西. 使用的工具包如下 <dependency> <groupId>net.java.dev.jna</g ...

  7. Eclipse下生成.dll动态库及.a静态库使用 for Windows [z]

    以后的主要工作就是做库了,将我们的C或者C++写的接口做成库,给客户端使用,因此有必要知道库的使用和制作方法.主要是在Eclipse下搞了搞,公司用的是Carbide,也差不多.库做好了,用SVN已提 ...

  8. Golang调用windows下的dll动态库中的函数

    Golang调用windows下的dll动态库中的函数 使用syscall调用. package main import ( "fmt" "syscall" & ...

  9. java使用JNA框架调用dll动态库

    这两天了解了一下java调用dll动态库的方法,总的有三种:JNI.JNA.JNative.其中JNA调用DLL是最方便的. ·JNI ·JNA ·JNative java使用 JNI来调用dll动态 ...

随机推荐

  1. 利用js实现禁用浏览器后退

    原博主链接为:http://blog.csdn.net/zc474235918/article/details/53138553 现在很多的内部系统,一些界面,都是用户手动点击退出按钮的.但是为了避免 ...

  2. 数据结构之B进制(确定进制)

    #include <cstdio> int max_num(int n) { int max=0; while(n) { int k=n%10; if(k>max) max=k; n ...

  3. 求链表内环的入口节点-Java

    步骤: 1.设置快慢两个指针,slow和fast,每次slow走一步slow.next,而fast走两步fast.next.next. 2.如果链表有环肯定可以在环内的一个节点相遇. 3.此时,slo ...

  4. spring文件上传

    Spring文件上传 1,导包: <dependency> <groupId>javax.servlet</groupId> <artifactId>s ...

  5. 记一次JavaWeb网站技术架构总结

    题记 工作也有几多年了,无论是身边遇到的还是耳间闻到的,多多少少也积攒了自己的一些经验和思考,当然,博主并没有太多接触高大上的分布式架构实践,相对比较零碎,随时补充. 俗话说的好,冰冻三尺非一日之寒, ...

  6. 多路复用(select、epoll)实现tcp服务

    -------------------------------多路复用的服务器(select)------------------------------- 网络通信被Unix系统抽象为文件的读写,通 ...

  7. 再起航,我的学习笔记之JavaScript设计模式18(观察者模式)

    观察者模式 观察者模式(Observer): 又被称为发布-订阅者模式或消息机制,定义了一种依赖关系,解决了主体对象与观察者之间功能的耦合. 创建一个观察者对象 首先我们创建一个闭包对象,让其在页面加 ...

  8. Window下SVN服务器搭建以及客户端使用

    一.下载 上一篇博客是关于Jenkins的内容,在Jenkins自动化编译时可能会自动获取版本更新进行build,那就需要用到版本更新的工具.这里使用VisualSVN Server来作为搭建svn的 ...

  9. 201521123119《Java程序设计》第7周学习总结

    1. 本周学习总结 2. 书面作业 Q1.ArrayList代码分析 Q1.1 解释ArrayList的contains源代码 这段代码的主要目的是判断在对ArrayList遍历时所用的方法,在输入参 ...

  10. 201521123004 《Java程序设计》第13周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 协议.IP.域名.端口号 协议:网络中为了进行数据交换(通信)而建立的规则.标准或约定(=语义+语法+规则 ...