以后杂项积累的乱七八糟的东西就往这里放好了,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 *