{C++ 基础} {C++ 高级} {C#界面,C++核心算法} {设计模式} {C#基础}
三,其他
对于COM,在托管代码和非托管代码之间进行的所有调用都必须满足各自编程模型强加的要求。托管和非托管编程模型在很多方面是不同的。下表显示了每个模型的定义特征。
代码模型
基于接口
基于对象
标识
GUID
强名称
错误处理机制
HRESULT
异常
类型兼容性
二进制标准
类型标准
类型定义
类型库
元数据
类型安全
非类型安全
可选安全
版本控制
不可变的
灵活的
bool
bool *
System.Int32
char、small
char *、small *
System.SByte
short
short *
System.Int16
long、int
long *、int *
Hyper
hyper *
System.Int64
unsigned char、byte
unsigned char *、byte *
System.Byte
wchar_t、unsigned short
wchar_t *、unsigned short *
System.UInt16
unsigned long、unsigned int
unsigned long *、unsigned int *
System.UInt32
unsigned hyper
unsigned hyper *
System.UInt64
float
float *
System.Single
double
double *
System.Double
VARIANT_BOOL
VARIANT_BOOL *
System.Boolean
void*
void **
System.IntPtr
HRESULT *
System.Int16 或 System.IntPtr
SCODE
SCODE *
BSTR
BSTR *
System.String
LPSTR 或 [string, ...] char *
LPSTR *
LPWSTR 或 [string, …] wchar_t *
LPWSTR *
VARIANT
VARIANT *
System.Object
DECIMAL
DECIMAL *
System.Decimal
DATE
DATE *
System.DateTime
GUID *
System.Guid
CURRENCY
CURRENCY *
IUnknown *
IUnknown **
IDispatch *
IDispatch **
SAFEARRAY( type )
SAFEARRAY( type ) *
type []
http://www.voidnish.com/articles/ShowArticle.aspx?code=StringConvertor
posted on 2007-05-29 13:55 梦在天涯 阅读(5172) 评论(3) 编辑 收藏 引用 所属分类: CPlusPlus 、Manage c++ /CLI
好东西饿,支持 回复 更多评论
非托管 C 语言类型 托管类名 说明 HANDLE void* System.IntPtr 32 位 BYTE unsigned char S ystem.Byte 8 位 SHORT short System.Int16 16 位 WORD unsigned short System.UInt16 16 位 INT int System.Int32 32 位 UINT unsigned int System.UInt32 32 位 LONG long System.Int32 32 位 BOOL bool System.BOOL 8 位 DWORD unsigned long System.UInt32 32 位 ULONG unsigned long System.UInt32 32 位 CHAR char System.Char 用 ANSI 修饰。 LPSTR char* System.String 或 System.StringBuilder 用 ANSI 修饰。 LPCSTR Const char* System.String 或 System.StringBuilder 用 ANSI 修饰。 LPWSTR wchar_t* System.String 或 System.StringBuilder 用 Unicode 修饰。 LPCWSTR Const wchar_t* System.String 或 System.StringBuilder 用 Unicode 修饰。 FLOAT Float System.Single 32 位 DOUBLE Double System.Double 64 位 回复 更多评论
msdn 上: BOOL long System.Int32 32 位 回复 更多评论