日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]兩個小問題解決記錄:XCode中多Target時(shí)CFBundleDisplayName的多語言本地化;用C++寫socket程序時(shí)編譯錯誤說read和write找不到?第一個:在XCode同一個項(xiàng)目里

兩個小問題解決記錄:XCode中多Target時(shí)CFBundleDisplayName的多語言本地化;用C++寫socket程序時(shí)編譯錯誤說read和write找不到

?

第一個:在XCode同一個項(xiàng)目里創(chuàng)建了兩個target一個代表完整版一個代表lite版。按照網(wǎng)上找的方法對完整版的InfoPlist.strings做了本地化,CFBundleDisplayName有中英兩個版本,可以成功實(shí)現(xiàn)App應(yīng)用名稱的本地化。對lite版,新建了一個InfoPlist-lite.strings文件,也照樣弄了en和zh兩個版本,但lite版的顯示名稱就始終是Product Name所指定的字符串,沒能實(shí)現(xiàn)本地化。

最后經(jīng)試驗(yàn),發(fā)現(xiàn)這個.strings文件的名稱必須得是InfoPlist.strings才能被認(rèn),不像Info.plist那個文件可以任意命名只要在Build Settings里設(shè)置即可。所以最后是新建了另一個目錄專門去放Lite版的InfoPlist.strings文件,解決。

?

第二個:原先用C寫了個簡單的socket通信程序,gcc編譯及運(yùn)行都沒問題。把后綴改成cpp,用g++編譯就出錯,說對socket進(jìn)行讀寫的write和read不能被識別:

error:?use of undeclared identifier 'write'

?

error:?use of undeclared identifier 'read'

又上網(wǎng)查了一下,終于想起來,C++調(diào)用C的函數(shù)是應(yīng)該用extern "C"聲明一下的??赡苁莣rite和read所在的那個C函數(shù)庫太老,它自己沒有這樣聲明所以由于C++與C函數(shù)命名的不同造成編譯器不識別。于是在自己的程序里加上聲明就可以了:

?

extern?"C"?{

? ??int?write(int,void*,int);

? ??int?read(int,void*,int);

};

?

都是些小問題,呵呵。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉