解決使用VC 6.0編程遇到的問題
受到加工現(xiàn)場電腦管制的限制,電腦無法安裝Visual Studio 2012軟件。為了適應(yīng)現(xiàn)場的環(huán)境,不得不使用VC 6.0(免安裝版本)來開發(fā)現(xiàn)場設(shè)備交互功能。目前主要是對FANUC設(shè)備進(jìn)行二次開發(fā)
受到加工現(xiàn)場電腦管制的限制,電腦無法安裝Visual Studio 2012軟件。為了適應(yīng)現(xiàn)場的環(huán)境,不得不使用VC 6.0(免安裝版本)來開發(fā)現(xiàn)場設(shè)備交互功能。目前主要是對FANUC設(shè)備進(jìn)行二次開發(fā),通過智能銑削平臺與設(shè)備進(jìn)行對接,實(shí)現(xiàn)遠(yuǎn)程控制設(shè)備、修改參數(shù)和基本信息采集。
問題1:編寫DLL時(shí)出現(xiàn)錯(cuò)誤提示
當(dāng)用VC 6.0編寫DLL時(shí),可能會遇到"cannot open file ''"的錯(cuò)誤提示。這是因?yàn)槌绦蚰J(rèn)在D:/VC98/Lib路徑下查找文件,而實(shí)際上我的程序并沒有放在D盤根目錄下。解決方法是自行修改程序中的文件路徑,或直接將程序放置在與該路徑相同的位置。
問題2:無法獲取函數(shù)
在引入Fwlib32.h后,仍然無法獲取對應(yīng)的函數(shù),并且編譯時(shí)出現(xiàn)"unresolved external symbol "的錯(cuò)誤提示。這可能是因?yàn)闆]有找到對應(yīng)的文件。解決方法是在函數(shù)中直接引入文件,可以使用“#pragma comment(lib, '')”語句,或者在項(xiàng)目的設(shè)置中添加文件。
問題3:VC 6.0不顯示行號
由于VC 6.0默認(rèn)不顯示行號,當(dāng)代碼較多時(shí),查找問題變得不方便,很難知道自己位于哪一行。解決方法是下載一個(gè)名為VC6LineNumberAddin的插件,將VC6LineNumberAddin.dll文件放置在VC 6.0的安裝目錄下,并注冊該插件。然后在菜單欄的Tools -> Customize -> Add-ins and Macro Files中添加插件并選中,重啟VC 6.0即可顯示行號。
問題4:警告提示不一致的dll鏈接
編譯后可能會出現(xiàn)"warning C4273: '*' inconsistent dll linkage"的警告提示。雖然編譯通過,但看起來仍然不舒服。該問題通常是因?yàn)樵趖est.h頭文件中定義了_declspec(dllimport),而實(shí)際上應(yīng)該使用_declspec(dllexport)。dllimport用于從其他動(dòng)態(tài)庫中聲明導(dǎo)入函數(shù)、類、對象等供本動(dòng)態(tài)庫使用,而dllexport用于在動(dòng)態(tài)庫中聲明導(dǎo)出函數(shù)、類、對象等供外部調(diào)用。所以正確的做法是將函數(shù)、類等聲明為導(dǎo)出函數(shù),即使用__declspec(dllexport)。