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