WEB开发网
开发学院软件开发C++ C++字符串完全指引之二:字符串封装类 阅读

C++字符串完全指引之二:字符串封装类

 2010-10-15 09:08:04 来源:Web开发网   
核心提示:下面是一些各种转换宏的使用例子:// Functions taking various strings:void Foo ( LPCWSTR wstr );void Bar ( BSTR bstr );// Functions returning strings:void Baz ( BSTR* pbstr );#in

下面是一些各种转换宏的使用例子:

// Functions taking various strings:
void Foo ( LPCWSTR wstr );
void Bar ( BSTR bstr );
// Functions returning strings:
void Baz ( BSTR* pbstr );
#include <atlconv.h>
main()
{
using std::string;
USES_CONVERSION;  // declare locals used by the ATL macros
// Example 1: Send an MBCS string to Foo()
LPCSTR psz1 = "Bob";
string str1 = "Bob";
 Foo ( A2CW(psz1) );
 Foo ( A2CW(str1.c_str()) );
// Example 2: Send a MBCS and Unicode string to Bar()
LPCSTR psz2 = "Bob";
LPCWSTR wsz = L"Bob";
BSTR bs1;
CComBSTR bs2;
 bs1 = A2BSTR(psz2);     // create a BSTR
 bs2.Attach ( W2BSTR(wsz) ); // ditto, assign to a CComBSTR
 Bar ( bs1 );
 Bar ( bs2 );
 SysFreeString ( bs1 );   // free bs1 memory
 // No need to free bs2 since CComBSTR will do it for us.
// Example 3: Convert the BSTR returned by Baz()
BSTR bs3 = NULL;
string str2;
 Baz ( &bs3 );     // Baz() fills in bs3
 str2 = W2CA(bs3);   // convert to an MBCS string
 SysFreeString ( bs3 ); // free bs3 memory
}

正如你所看见的,当你有一个和函数所需的参数类型不同的字符串时,使用这些转换宏是非常方便的。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:字符串 完全 指引

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接