各種型別的轉換

2021-06-15 21:05:32 字數 1669 閱讀 9218

int i = 100;

long l = 2001;

float f=300.2;

double d=12345.119;

char username="csdn";

char temp[200];

char *buf;

cstring str;

_variant_t v1;

_bstr_t v2;

一、其它資料型別轉換為字串

二、字串轉換為其它資料型別

strcpy(temp,"123");

三、其它資料型別轉換到cstring

使用cstring的成員函式format來轉換,例如:

四、bstr、_bstr_t與ccombstr

五、variant 、_variant_t 與 colevariant

六、其它一些com資料型別

七、ansi與unicode

unicode稱為寬字元型字串,com裡使用的都是unicode字串。

八、其它

九、注意事項

假如需要使用到convertbstrtostring此類函式,需要加上標頭檔案comutil.h,並在setting中加入comsupp.lib或者直接加上#pragma comment( lib, "comsupp.lib" )

關於把bstr型別資料轉換成cstring 型別資料時的問題

?當我在把bstr型別資料轉換成cstring 或 「char* 型別」資料時,發現在bstr型別字串較短的情況下沒問題,當較長時就會出現

記憶體讀寫錯了。(在nt,2000下都測試是這樣的。)

根據你所說:

1)字串指標(char *)等已經被cstring建構函式支援的資料型別 可以直接賦值 str = username;

2)當b 為bstr型別時可以使用

char *p=_com_util::convertbstrtostring(b);

於是以下是對的:

cstring cstr;

bstr bstr;

....

cstr=com_util::convertbstrtostring(bstr);

...可是當bstr非常大時(其實,較大時就會)就會出現記憶體讀寫錯,不知何故。

此外我發現cstr=com_util::convertbstrtostring(bstr);

可以簡化為 cstr=bstr; 但當bstr較大時同樣出現這個問題。

請兄弟幫忙!急。謝謝!

如何轉化((list*)fileip.bian)->liang

關於把cstring轉化成lpctstr的問題

我記的我以前寫過這樣一段**

void function()

新增lib支援

如果不新增會產生錯誤,在setting中加入comsupp.lib或者直接#pragma comment( lib, "comsupp.lib" )

微軟認為預設的設定call convention如果不設定成__cdecl也會出現同樣的錯誤。

各種型別的轉換

1.std string轉換成qstring string std str abc qstring q str qstring fromstdstring std str 2.qstring轉換成std string qstring q str abc string q str.tostdstrin...

python各種型別轉換

int x base 將x轉換為乙個整數 long x base 將x轉換為乙個長整數 float x 將x轉換到乙個浮點數 complex real imag 建立乙個複數 str x 將物件 x 轉換為字串 repr x 將物件 x 轉換為表示式字串 eval str 用來計算在字串中的有效py...

python各種型別轉換

python int x base 將x轉換為乙個整數 long x base 將x轉換為乙個長整數 float x 將x轉換到乙個浮點數 complex real imag 建立乙個複數 str x 將物件 x 轉換為字串 repr x 將物件 x 轉換為表示式字串 eval str 用來計算在字...