VC中有關資料型別轉換的整理

2021-06-06 11:41:10 字數 1730 閱讀 5966

說明:本文純粹是總結一下有關型別轉換的貼子,

讀者層次:初學

int i = 100;

long l = 2001;

float f=300.2;

double d=12345.119;

char username="程佩君";

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。int 轉成cstring ??

vc 資料型別轉換

剛接觸vc程式設計的朋友往往對許多資料型別的轉換感到迷惑不解,本文將介紹一些常用資料型別的使用。我們先定義一些常見型別變數藉以說明 int i 100 long l 2001 float f 300.2 double d 12345.119 char username 女俠程佩君 char temp...

vc 資料型別轉換

技術開發 2007 01 29 16 00 13 閱讀352 字型大小 大 中小訂閱 數學型別變數與字串相互轉換 這些函式都在stdlib.h裡 1 將數學型別轉換為字串可以用以下一些函式 舉例 crtimp char cdecl itoa int,char int 這是乙個將數字轉換為乙個字串型別...

VC資料型別轉換

本文將介紹一些常用資料型別的使用。int i 100 long l 200l float f 300.2 double d 12345.119 char username 女俠程佩君 char temp 200 char buf cstring str variant t v1 bstr t v2 ...