在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的過程,完整的實現。這是我在親自一步步操作整理的過程,希望對需要的朋友有幫助。