C++杂物箱
以后雜項積累的亂七八糟的東西就往這里放好了,C++里面的亂七八糟的東西太多了。
====================================================
icrsint.h 包含了VC++擴展的一些預處理指令,宏的定義,做COM編程的時候包含一下該文件。
====================================================
字符串相關類型的推薦選擇順序
1 stl::string/wstring 功能最完善,可移植性最好。?
2 CString 如果編碼規范限制使用STL的時候,推薦CString。VC 6的版本很不完善。.Net有明顯改進,需要進一步研究。
3?C/C++ basic type(TCHAR* / char* / LPTSTR / LPCTSTR / TCHAR[]) 結構體中,優先使用指定最大長度的字符數組。效率最好
4 CComBSTR/ _bstr_t 在必須使用BSTR時的優先選擇。在ATL(COM component)工程或者工程中必須使用ATL中,優先選擇CComBSTR。一般Exe/dll如果_bstr_t能滿足要求,優先使用_bstr_t。對于VC6,使用_bstr_t一定要慎重,最好只用作簡單臨時變量保存調被調用函數的傳入參數。因為_bstrt_t不能支持一些關鍵性操作,比如Detach。對于VC++ .Net推薦使用_bstr_t,它是C++擴展,不需要額外包含ATL的文件。
5 BSTR COM接口
==========================================================
_variant_t ? 是variant ? 的包裝類???
_bstr_t ? 是bstr的包裝類???
variant ? 類型可以存放任何數據類型,其實在com中variant是一個結構???
bstr是存放字符串的指針,但是雙字節的,類似unsigned ? short ? *
====================================================
icrsint.h 包含了VC++擴展的一些預處理指令,宏的定義,做COM編程的時候包含一下該文件。
====================================================
字符串相關類型的推薦選擇順序
1 stl::string/wstring 功能最完善,可移植性最好。?
2 CString 如果編碼規范限制使用STL的時候,推薦CString。VC 6的版本很不完善。.Net有明顯改進,需要進一步研究。
3?C/C++ basic type(TCHAR* / char* / LPTSTR / LPCTSTR / TCHAR[]) 結構體中,優先使用指定最大長度的字符數組。效率最好
4 CComBSTR/ _bstr_t 在必須使用BSTR時的優先選擇。在ATL(COM component)工程或者工程中必須使用ATL中,優先選擇CComBSTR。一般Exe/dll如果_bstr_t能滿足要求,優先使用_bstr_t。對于VC6,使用_bstr_t一定要慎重,最好只用作簡單臨時變量保存調被調用函數的傳入參數。因為_bstrt_t不能支持一些關鍵性操作,比如Detach。對于VC++ .Net推薦使用_bstr_t,它是C++擴展,不需要額外包含ATL的文件。
5 BSTR COM接口
==========================================================
_variant_t ? 是variant ? 的包裝類???
_bstr_t ? 是bstr的包裝類???
variant ? 類型可以存放任何數據類型,其實在com中variant是一個結構???
bstr是存放字符串的指針,但是雙字節的,類似unsigned ? short ? *
轉載于:https://www.cnblogs.com/coderlee/archive/2008/01/24/1051713.html
總結
- 上一篇: MVP 2008全球峰会可预订宾馆,寻室
- 下一篇: 第十一篇: Ajax Control T