昨天除錯了半天的乙個錯誤,是從bmp中把灰度值轉化為高度資訊,是從乙個c++的**往c#中去轉換,cpp**中用了乙個char* 的指標來存放位圖資料。我在用c#的時候並沒有過多的考慮,也用了char *,結果一直都出錯。搞了乙個小時也沒找到原因。後來查了一下發現居然是型別之間的對應關係有誤。發現這個的原因是湊巧的。我原想把char* 搞成 unsign char*, 結果居然沒有找到。在尋找的過程中,在msdn中找到了這個表,解決了那個問題。
下面請看:
下表列出了 .net framework 提供的一些值型別,簡要描述了每個型別,並指示 visual basic、c# 和 c++ 中的相應型別。表中還包括object和string類的項,這些項在許多語言中都有相應的關鍵字。
類別 類名
說明 visual basic 資料型別
c# 資料型別
c++ 資料型別
jscript 資料型別
整數byte
8 位的無符號整數。
byte
byte
char
byte
sbyte
8 位的有符號整數。
不符合 cls。
sbyte
sbyte
signed char
sbyte
int16
16 位的有符號整數。
short
short
short
short
int32
32 位的有符號整數。
integer
int
int
- 或 -
long
int
int64
64 位的有符號整數。
long
long
__int64
long
uint16
16 位無符號整數。
不符合 cls。
ushort
ushort
unsigned short
uint16
uint32
32 位無符號整數。
不符合 cls。
uinteger
uint
unsigned int
- 或 -
unsigned long
uint32
uint64
64 位無符號整數。
不符合 cls。
ulong
ulong
unsigned __int64
uint64
浮點single
單精度(32 位)浮點數字。
single
float
float
float
double
雙精度(64 位)浮點數字。
double
double
double
double
邏輯運算
boolean
布林值(真或假)。
boolean
bool
bool
bool
其他char
unicode(16 位)字元。
char
char
wchar_t
char
decimal
十進位制(128 位)值。
decimal
decimal
decimal
decimal
intptr
大小取決於基礎平台(32 位平台上為 32 位值,64 位平台上為 64 位值)的有符號整數。
intptr
無內建型別。
intptr
無內建型別。
intptr
無內建型別。
intptr
uintptr
大小取決於基礎平台的無符號整數(32 位平台上為 32 位值,64 位平台上為 64 位值)。
不符合 cls。
uintptr
無內建型別。
uintptr
無內建型別。
uintptr
無內建型別。
uintptr
類物件object
物件層次結構的根。
object
object
object*
object
string
unicode 字元的不變的定長串。
string
string
string*
string
C 中資料型別與其他語言中的資料型別之間的對應關係
下表列出了 net framework 提供的一些值型別,簡要描述了每個型別,並指示 visual basic c 和 c 中的相應型別。表中還包括object和string類的項,這些項在許多語言中都有相應的關鍵字。類別 類名 說明 visual basic 資料型別 c 資料型別 c 資料型別 ...
variant t與其他資料型別的轉換
我們先看看com所支援的一些型別的基本類 微軟提供,在comdef.h中定義 在com中使用的標準類class如下所示 bstr t 對bstr型別進行打包,並提供有用的操作和方法 com error 定義丟擲的error物件 com ptr t 封裝com介面指標 variant t 對varia...
C 語言中的資料型別
1.1基本資料型別 字元型 char 短整型 short int 整型 int 長整型 long int 單精度浮點型 float 雙精度浮點型 double 1.2復合資料型別 陣列,結構體。字元型 char a 1 1個位元組 短整型 short int 2個位元組 整型 int 4個位元組 長...