DEPENDS工具和DUMPBIN工具使用


  在系統部署運行時我們經常發現某個程序在開發機器中可以運行,但是部署在某台PC上缺不能運行,也存在在某些機器上可運行換一台機器卻不能運行。主要表現出兩種現象:

        (1)、運行、調試時出現程序啟動時報錯,提示出現錯誤無法啟動。

        (2)、程序執行數據庫查詢語句時直接跳過,查詢函數調用時斷點也無法中斷。並且無執行結果。

  其實出現這樣的原因最主要是我們部署的程序缺少一些必要的運行庫(注意庫的版本,同樣的庫如果版本不一致也可能出現題)。

1.Depends

  Depends用來顯示與一個可執行文件(exe或者dll)相關的依賴項(dll),以及該exe或dll引用了這些dll中的哪些接口。同時也可以看到每個被依賴的dll中的所有導出的函數接口。

  該工具得到的是查看程序中隱式連接的Dll庫,也就是用LIB關聯的Dll模塊,無法顯示由顯示連接的Dll模塊,也就是用LoadLibrary函數導入的Dll函數。

2.DUMPBIN

  導出函數如下:
 1 // open_www.cpp : 定義控制台應用程序的入口點。
 2 #include <stdio.h>
 3 #include <stdlib.h>
 4 extern "C"_declspec (dllexport)int add(int a,int b)
 5 {
 6  return a+b;
 7 }
 8 int main(void)
 9 {
10  int c=0;
11  c=add(1,4);
12  printf("c=%d\n",c);
13  return 0;
14 }

2.1 開啟CMD

2.2 移動目錄到C:\Program Files (x86)\Microsoft Visual Studio\VC98\Bin

(DUMPBIN.EXE所在目錄)

2.3 運行命令:VCVARS32.BAT

如果不運行vcvars32.bat會出現以下提示

2.4 下面就可以調用dumpbin.exe命令了

  如果導出函數前不加extern "C"

 /*extern "C"*/_declspec (dllexport)int add(int a,int b)

  則顯示結果為:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM