VC6正在被拋棄?

2021-04-15 19:00:02 字數 1270 閱讀 8668

我還在用的vc6本來早就該公升級了,畢竟vc已經從vc6經歷7.0、7.1、8.0,現在已經到了vc9(vc2008)了。

只是我比較戀舊,想想我的機器也受不了ms頻繁的公升級,現在的機器也就免強能跑跑vc6。

但是現在c++標準公升級了,gcc也公升級了,vc6 真的已經是必須丟棄的雞骨頭了。

vc6自帶的std::string的引用計數在多核上讓我受苦,查錯一周有餘才找到這個原凶。後來就促使我將stl庫替換為stlport。

boost.asio庫明確說明不支援vc6。

stlsoft庫某些元件無法相容vc6(詳細閱讀了《extended stl》,才知道為了vc6要耗費大量的精力,有些元件本身已很複雜,以至於需要排除vc6才能實現。)

今天使用boost.date_time時又發現vc6不行了。

time_formatters.hpp(72) : error c2664: '_i64toa' : cannot convert parameter 2 from 'unsigned short [32]' to 'char *'

time_formatters.hpp相應**為:

//todo the following is totally non-generic, yelling fixme

#if (defined(boost_msvc) && (_msc_ver < 1300))

boost::int64_t frac_sec =

date_time::absolute_value(td.fractional_seconds());

// jdg [7/6/02 vc++ compatibility]

chart buff[32];

_i64toa(frac_sec, buff, 10);

#else

vc6的_msc_ver是1200,這段**明顯是針對vc6的。

可惜jdg的簡單補丁並沒有考慮vc6+stlp的情況,_i64toa()只能接受char buff,對於wchar則報以上錯誤。

實際上有stlport,根本不必呼叫_i64toa(),因為int64_t在stlport中是可以直接流式輸出的。

為什麼只用到char,仍會對wchar例項化?為什麼data_time的庫編譯會成功?這些仍是問題。

不用stlport就不會報這個錯,可見wchar特化的例項化只在stlport環境下才進行。

檢視date_time的文件,明確支援的vc版本只有vc7.1。

vc8有些問題。vc6、7已停止正式的支援。

看來我該公升級了,先公升級我的機器。 

vc6 控制項

詳見msdn 為控制項新增乙個控制項型變數然後訪問之 edit idc edit1 m edit1 void ctest1dlg onbutton1 也可以直接使用id訪問 cstring str int i getdlgitemtextw idc edit1,str afxmessagebox s...

VC6遠端除錯

vc開發環境之所以提供遠端除錯的能力,是因為有些情況下單機除錯會讓你崩潰掉。比如,除錯gui程式的wm paint訊息,因為要單步除錯,所以 偵錯程式會對介面的重繪產生 heisenberg不確定性原理 當然還有些別的情況也適用,比如程式在測試環境執行的好好的,但是在客戶那行為總 是異常,這時候如果...

vc6之串列埠通訊

vc串列埠程式設計方案 mscomm控制項 cserialport類 api 1.新建乙個dialog專案,右擊對話方塊,選擇insert activex control,選擇microsoft communication control,新增串列埠控制項idc mscomm1 2.按ctrl w,...