目前知道有两种方式:可以提供宽字符与ansi字符之间的转换,
char* _com_util::convertbstrtostring(bstr ); 【程序编程相关:如何禁止对话框关闭按钮和浮动工具条上的系】
第一种由com库提供的函数 【推荐阅读:VC学习:Windows CE下的串口通】
【扩展信息:浅谈内存泄漏(二)】
bstr _com_util::convertstringtobstr(char*);
example
// convertbstrtostring.cpp#include <comutil.h>#include <stdio.h>#pragma comment(lib, "comsupp.lib")int main(){ bstr bstrtext = ::sysallocstring(l"test"); wprintf(l"bstr text: %s\n", bstrtext); char* lpsztext2 = _com_util::convertbstrtostring(bstrtext); printf("char * text: %s\n", lpsztext2); sysfreestring(bstrtext); delete[] lpsztext2;} outputbstr text: testchar * text: test 第二种标准库提供的函数将宽字符串wcstr转换为ansi字符串mbstr
size_t wcstombs( char *mbstr, const wchar_t *wcstr, size_t count );
mbstr
多字节字符的地址wcstr 宽字符的地址count 可以存储在多字节字符的最大字节数将ansi字符串mbstr转化为宽字符串wcstr... 下一页