該VB6項目需要用GPIB協議與設備通訊
在更新程序版本時,用源碼執行正常
但編譯成exe執行就會報錯:找不到Gpib32.dll
懷疑是GPIB驅動安裝有問題,於是檢查了GPIB驅動安裝路徑下是否有此dll
確認無誤,所以問題是出在哪裡呢?
重點來了!!!
在VB6中,当你直接从开发环境(如IDE)运行源代码时,IDE会配置好所有必要的环境变量和路径,以确保应用程序能够找到所有它需要的资源,包括DLL文件。
然而,当你将VB6项目编译成可执行文件(EXE)并在没有IDE支持的环境下运行时,应用程序就需要自己处理这些依赖关系。这包括找到并加载所有必需的DLL文件。如果DLL文件不在应用程序的搜索路径中,或者存在其他依赖问题,应用程序就会在运行时报告错误。
總結:在exe執行檔同目錄下也需要有此dll。
於是檢查源碼文件夾內是否有此dll
也有這個dll啊?所以根因不在這
重點又來了!!!
驅動環境路徑下的dll版本是3.1.0.49154
而exe路徑下的dll版本是2.4.0.3055
所以需要將系統路徑下的dll替換到exe路徑下,問題就解決了
總結:VB6用GPIB通訊協議的要注意exe執行檔路徑下也要有驅動的dll,且要與驅動安裝目錄下的dll保持版本一致!