Class

string
type

convert
to char*?

convert to
const char*?

convert to
wchar_t*?

convert to
const wchar_t*?

convert
to BSTR?

construct
from char*?

 

_bstr_t

BSTR

yes, cast1

yes, cast

yes, cast1

yes, cast

yes2

yes

 

_variant_t

BSTR

no

no

no

cast to
_bstr_t3

cast to
_bstr_t3

yes

 

string

MBCS

no

yes, c_str()
method

no

no

no

yes

 

wstring

Unicode

no

no

no

yes, c_str()
method

no

no

 

CComBSTR

BSTR

no

no

no

yes, cast
to BSTR

yes, cast

yes

 

CComVariant

BSTR

no

no

no

yes4

yes4

yes

 

CString

TCHAR

no6

in MBCS
builds, cast

no6

in Unicode
builds, cast

no5

yes

 

COleVariant

BSTR

no

no

no

yes4

yes4

in MBCS builds

 

 

 داده های رشته ای در ویژوال سی , به دسته های گوناگونی تقسیم میشوند. حال در اینجا این سوال مطرح میگردد که آیا همه این متغیرها قابل تبدیل به همدیگر هستند؟ از این رو جدولی که در شکل بالا مشاهده میکنید به شما نشان خواهد داد که این داده ها در زمینه تبدیل به همدیگر چقدر انعطاف پذیری دارند. توجه نمایید ...