之前做iOS開(kāi)發(fā)都是用的XCode,后來(lái)unity也是用MonoDevelop,VS只在最早學(xué)C時(shí)用過(guò)片橡。今天把一個(gè)mac上的小程序搬到win上否副,對(duì)VS有了一點(diǎn)點(diǎn)熟悉逆趋,特此記錄哮伟。
-
雖然c++跨平臺(tái)枉昏,但是對(duì)代碼文件的編碼處理win和mac卻不同陈肛,所以一開(kāi)始就遇到了明明類(lèi)定義都是正確的,卻總是在報(bào)錯(cuò)
“xxx為聲明變量”
兄裂,需要把文件的編碼方式修改成Unicode
.打開(kāi)文件句旱,然后左上角 文件--高級(jí)保存選項(xiàng)-編碼方式設(shè)置為
Unicode
阳藻。這里注意沒(méi)有(UTF-8)
這些后綴。修改完成后類(lèi)被識(shí)別出來(lái)谈撒,
“xxx為聲明變量”
這些錯(cuò)誤都沒(méi)有了腥泥。 -
一開(kāi)始運(yùn)行就是報(bào)錯(cuò)彈框
“無(wú)法啟動(dòng)程序xxx,系統(tǒng)找不到指定文件”
。這個(gè)問(wèn)題很常見(jiàn)啃匿,經(jīng)過(guò)處理蛔外,我的理解是:一開(kāi)始運(yùn)行,報(bào)錯(cuò)溯乒,導(dǎo)致沒(méi)有生成可執(zhí)行文件夹厌,自然沒(méi)有xxx程序。
按照人正常的邏輯應(yīng)該是:編譯出錯(cuò)裆悄,那么給你提示錯(cuò)誤矛纹,然后取消運(yùn)行,可是這里竟然還要執(zhí)行光稼,然后就彈出了這樣不知所謂的提示或南。
所以要做的就是,把報(bào)錯(cuò)的地方一個(gè)個(gè)解決了艾君,然后編譯通過(guò)采够,生成.exe
文件,就好了冰垄。
-
跟上一個(gè)問(wèn)題原因本質(zhì)上是一樣的蹬癌。斷點(diǎn)有時(shí)候打了,但是卻不起作用播演,把鼠標(biāo)放過(guò)去冀瓦,提示:當(dāng)前版本和原始版本不一致⌒纯荆看了網(wǎng)上的說(shuō)法翼闽,要么把斷點(diǎn)對(duì)版本一致的要求去掉,要么重新保存文件等等洲炊,但我覺(jué)得都找錯(cuò)了方向感局。
這個(gè)時(shí)候我注意到又報(bào)錯(cuò)了,把錯(cuò)誤解決暂衡,這個(gè)問(wèn)題也解決了询微。為什么?因?yàn)橛绣e(cuò)誤狂巢,所以你修改后的代碼沒(méi)有重新編譯成新的exe文件撑毛,當(dāng)你運(yùn)行后,它是運(yùn)行了之前代碼生成的程序唧领,這個(gè)就是所謂的當(dāng)前版本和原始版本不一致藻雌。
如果只是把斷點(diǎn)對(duì)版本一致的要求去掉雌续,斷點(diǎn)是起作用了,可是我調(diào)試的是之前的程序胯杭,那有什么意義驯杜,所以說(shuō)找錯(cuò)方向了。
然后這里問(wèn)題其實(shí)跟上一個(gè)就是一樣的做个,編譯有問(wèn)題鸽心,就應(yīng)該取消運(yùn)行嘛,還運(yùn)行之前的居暖,這不是坑爹顽频,再來(lái)個(gè)“當(dāng)前版本和原始版本不一致”的提示,真是繞了好大的彎啊膝但。