免费国产网站_秋霞午夜一区二区三区视频_99热在线看_日韩精品久久一区二区_午夜看一级毛片_天天鲁在视频在线观看

  • C#與C++數(shù)據(jù)類型對應(yīng)總結(jié)

    2019/5/9??????點(diǎn)擊:

    C#與C++數(shù)據(jù)類型對應(yīng)總結(jié)


    Windows Data Type

    .NET Data Type

    BOOL, BOOLEAN

    Boolean or Int32

    BSTR

    String

    BYTE

    Byte

    CHAR

    Char

    DOUBLE

    Double

    DWORD

    Int32 or UInt32

    FLOAT

    Single

    HANDLE (and all other handle types, such as HFONT and HMENU)

    IntPtr, UintPtr or HandleRef

    HRESULT

    Int32 or UInt32

    INT

    Int32

    LANGID

    Int16 or UInt16

    LCID

    Int32 or UInt32

    LONG

    Int32

    LPARAM

    IntPtr, UintPtr or Object

    LPCSTR

    String

    LPCTSTR

    String

    LPCWSTR

    String

    LPSTR

    String or StringBuilder*

    LPTSTR

    String or StringBuilder

    LPWSTR

    String or StringBuilder

    LPVOID

    IntPtr, UintPtr or Object

    LRESULT

    IntPtr

    SAFEARRAY

    .NET array type

    SHORT

    Int16

    TCHAR

    Char

    UCHAR

    SByte

    UINT

    Int32 or UInt32

    ULONG

    Int32 or UInt32

    VARIANT

    Object

    VARIANT_BOOL

    Boolean

    WCHAR

    Char

    WORD

    Int16 or UInt16

    WPARAM

    IntPtr, UintPtr or Object

    另: 在進(jìn)行string轉(zhuǎn)換時(shí),需要加入前綴[MarshalAs(UnmanagedType.LPStr)]lpdword 對應(yīng)于 ref int


    C/C++

    C#

    HANDLE, LPDWORD, LPVOID, void*

    IntPtr

    LPCTSTR, LPCTSTR, LPSTR, char*, const char*, Wchar_t*, LPWSTR

    String [in], StringBuilder [in, out]

    DWORD, unsigned long, Ulong

    UInt32, [MarshalAs(UnmanagedType.U4)]

    bool

    bool

    LP

    [In] ref

    SIZE_T

    uint

    LPDWORD

    out uint

    LPTSTR

    [Out] StringBuilder

    PULARGE_INTEGER

    out ulong

    WORD

    uInt16

    Byte, unsigned char

    byte

    Short

    Int16

    Long, int

    Int32

    float

    single

    double

    double

    NULL pointer

    IntPtr.Zero

    Uint

    Uint32

    C#調(diào)用DLL文件時(shí)參數(shù)對應(yīng)表

    Wtypes.h 中的非托管類型

    非托管 C 語言類型

    托管類名

    說明

    HANDLE

    void*

    System.IntPtr

    在 32 位 Windows 操作系統(tǒng)上為 32 位,在 64 位 Windows 操作系統(tǒng)上為 64 位。

    BYTE

    unsigned char

    System.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

    long

    System.Int32

    32 位

    DWORD

    unsigned long

    System.UInt32

    32 位

    ULONG

    unsigned long

    System.UInt32

    32 位

    CHAR

    char

    System.Char

    用 ANSI 修飾。

    LPSTR

    char*

    System.String 或   System.Text.StringBuilder

    用 ANSI 修飾。

    LPCSTR

    Const char*

    System.String 或   System.Text.StringBuilder

    用 ANSI 修飾。

    LPWSTR

    wchar_t*

    System.String 或   System.Text.StringBuilder

    用 Unicode 修飾。

    LPCWSTR

    Const wchar_t*

    System.String 或   System.Text.StringBuilder

    用 Unicode 修飾。

    FLOAT

    Float

    System.Single

    32 位

    DOUBLE

    Double

    System.Double

    64 位

      //C++中的DLL函數(shù)原型為
      //extern "C" __declspec(dllexport) bool 方法名一(const char* 變量名1, unsigned char* 變量名2)
      //extern "C" __declspec(dllexport) bool 方法名二(const unsigned char* 變量名1, char* 變量名2)

      //C#調(diào)用C++的DLL搜集整理的所有數(shù)據(jù)類型轉(zhuǎn)換方式,可能會(huì)有重復(fù)或者多種方案,自己多測試
      //c++:HANDLE(void *) ---- c#:System.IntPtr  
      //c++:Byte(unsigned char) ---- c#:System.Byte  
      //c++:SHORT(short) ---- c#:System.Int16  
      //c++:WORD(unsigned short) ---- c#:System.UInt16  
      //c++:INT(int) ---- c#:System.Int16
      //c++:INT(int) ---- c#:System.Int32  
      //c++:UINT(unsigned int) ---- c#:System.UInt16
      //c++:UINT(unsigned int) ---- c#:System.UInt32
      //c++:LONG(long) ---- c#:System.Int32  
      //c++:ULONG(unsigned long) ---- c#:System.UInt32  
      //c++:DWORD(unsigned long) ---- c#:System.UInt32  
      //c++:DECIMAL ---- c#:System.Decimal  
      //c++:BOOL(long) ---- c#:System.Boolean  
      //c++:CHAR(char) ---- c#:System.Char  
      //c++:LPSTR(char *) ---- c#:System.String  
      //c++:LPWSTR(wchar_t *) ---- c#:System.String  
      //c++:LPCSTR(const char *) ---- c#:System.String  
      //c++:LPCWSTR(const wchar_t *) ---- c#:System.String  
      //c++:PCAHR(char *) ---- c#:System.String  
      //c++:BSTR ---- c#:System.String  
      //c++:FLOAT(float) ---- c#:System.Single  
      //c++:DOUBLE(double) ---- c#:System.Double  
      //c++:VARIANT ---- c#:System.Object  
      //c++:PBYTE(byte *) ---- c#:System.Byte[] 

      //c++:BSTR ---- c#:StringBuilder
      //c++:LPCTSTR ---- c#:StringBuilder
      //c++:LPCTSTR ---- c#:string
      //c++:LPTSTR ---- c#:[MarshalAs(UnmanagedType.LPTStr)] string  
      //c++:LPTSTR 輸出變量名 ---- c#:StringBuilder 輸出變量名
      //c++:LPCWSTR ---- c#:IntPtr
      //c++:BOOL ---- c#:bool   
      //c++:HMODULE ---- c#:IntPtr   
      //c++:HINSTANCE ---- c#:IntPtr  
      //c++:結(jié)構(gòu)體 ---- c#:public struct 結(jié)構(gòu)體{};  
      //c++:結(jié)構(gòu)體 **變量名 ---- c#:out 變量名 //C#中提前申明一個(gè)結(jié)構(gòu)體實(shí)例化后的變量名
      //c++:結(jié)構(gòu)體 &變量名 ---- c#:ref 結(jié)構(gòu)體 變量名

      //c++:WORD ---- c#:ushort
      //c++:DWORD ---- c#:uint
      //c++:DWORD ---- c#:int

      //c++:UCHAR ---- c#:int
      //c++:UCHAR ---- c#:byte
      //c++:UCHAR* ---- c#:string
      //c++:UCHAR* ---- c#:IntPtr

      //c++:GUID ---- c#:Guid
      //c++:Handle ---- c#:IntPtr
      //c++:HWND ---- c#:IntPtr
      //c++:DWORD ---- c#:int
      //c++:COLORREF ---- c#:uint

      //c++:unsigned char ---- c#:byte
      //c++:unsigned char * ---- c#:ref byte
      //c++:unsigned char * ---- c#:[MarshalAs(UnmanagedType.LPArray)] byte[]
      //c++:unsigned char * ---- c#:[MarshalAs(UnmanagedType.LPArray)] Intptr

      //c++:unsigned char & ---- c#:ref byte
      //c++:unsigned char 變量名 ---- c#:byte 變量名
      //c++:unsigned short 變量名 ---- c#:ushort 變量名
      //c++:unsigned int 變量名 ---- c#:uint 變量名
      //c++:unsigned long 變量名 ---- c#:ulong 變量名

      //c++:char 變量名 ---- c#:byte 變量名 //C++中一個(gè)字符用一個(gè)字節(jié)表示,C#中一個(gè)字符用兩個(gè)字節(jié)表示
      //c++:char 數(shù)組名[數(shù)組大小] ---- c#:MarshalAs(UnmanagedType.ByValTStr, SizeConst = 數(shù)組大小)] public string 數(shù)組名; ushort

      //c++:char * ---- c#:string //傳入?yún)?shù)
      //c++:char * ---- c#:StringBuilder//傳出參數(shù)
      //c++:char *變量名 ---- c#:ref string 變量名
      //c++:char *輸入變量名 ---- c#:string 輸入變量名
      //c++:char *輸出變量名 ---- c#:[MarshalAs(UnmanagedType.LPStr)] StringBuilder 輸出變量名

      //c++:char ** ---- c#:string
      //c++:char **變量名 ---- c#:ref string 變量名
      //c++:const char * ---- c#:string
      //c++:char[] ---- c#:string
      //c++:char 變量名[數(shù)組大小] ---- c#:[MarshalAs(UnmanagedType.ByValTStr,SizeConst=數(shù)組大小)] public string 變量名; 

      //c++:struct 結(jié)構(gòu)體名 *變量名 ---- c#:ref 結(jié)構(gòu)體名 變量名
      //c++:委托 變量名 ---- c#:委托 變量名

      //c++:int ---- c#:int
      //c++:int ---- c#:ref int
      //c++:int & ---- c#:ref int
      //c++:int * ---- c#:ref int //C#中調(diào)用前需定義int 變量名 = 0;

      //c++:*int ---- c#:IntPtr
      //c++:int32 PIPTR * ---- c#:int32[]
      //c++:float PIPTR * ---- c#:float[]

      //c++:double** 數(shù)組名 ---- c#:ref double 數(shù)組名
      //c++:double*[] 數(shù)組名 ---- c#:ref double 數(shù)組名
      //c++:long ---- c#:int
      //c++:ulong ---- c#:int    
      //c++:UINT8 * ---- c#:ref byte //C#中調(diào)用前需定義byte 變量名 = new byte();  

      //c++:handle ---- c#:IntPtr
      //c++:hwnd ---- c#:IntPtr
       //c++:void * ---- c#:IntPtr   
      //c++:void * user_obj_param ---- c#:IntPtr user_obj_param
      //c++:void * 對象名稱 ---- c#:([MarshalAs(UnmanagedType.AsAny)]Object 對象名稱

      //c++:char, INT8, SBYTE, CHAR ---- c#:System.SByte   
      //c++:short, short int, INT16, SHORT ---- c#:System.Int16   
      //c++:int, long, long int, INT32, LONG32, BOOL , INT ---- c#:System.Int32   
      //c++:__int64, INT64, LONGLONG ---- c#:System.Int64   
      //c++:unsigned char, UINT8, UCHAR , BYTE ---- c#:System.Byte   
      //c++:unsigned short, UINT16, USHORT, WORD, ATOM, WCHAR , __wchar_t ---- c#:System.UInt16   
      //c++:unsigned, unsigned int, UINT32, ULONG32, DWORD32, ULONG, DWORD, UINT ---- c#:System.UInt32   
      //c++:unsigned __int64, UINT64, DWORDLONG, ULONGLONG ---- c#:System.UInt64   
      //c++:float, FLOAT ---- c#:System.Single   
      //c++:double, long double, DOUBLE ---- c#:System.Double  

      //Win32 Types ---- CLR Type   

      //Struct需要在C#里重新定義一個(gè)Struct
      //CallBack回調(diào)函數(shù)需要封裝在一個(gè)委托里,delegate static extern int FunCallBack(string str);

      //unsigned char** ppImage替換成IntPtr ppImage
      //int& nWidth替換成ref int nWidth
      //int*, int&, 則都可用 ref int 對應(yīng)
      //雙針指類型參數(shù),可以用 ref IntPtr
      //函數(shù)指針使用c++: typedef double (*fun_type1)(double); 對應(yīng) c#:public delegate double fun_type1(double);
      //char* 的操作c++: char*; 對應(yīng) c#:StringBuilder;
      //c#中使用指針:在需要使用指針的地方 加 unsafe

      //unsigned char對應(yīng)public byte
      /*
      * typedef void (*CALLBACKFUN1W)(wchar_t*, void* pArg);
      * typedef void (*CALLBACKFUN1A)(char*, void* pArg);
      * bool BIOPRINT_SENSOR_API dllFun1(CALLBACKFUN1 pCallbackFun1, void* pArg);
      * 調(diào)用方式為
      * [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
      * public delegate void CallbackFunc1([MarshalAs(UnmanagedType.LPWStr)] StringBuilder strName, IntPtr pArg);
      *  
      */

    主站蜘蛛池模板: 中国熟妇浓毛hdsex_中日韩三级_九热视频在线观看_成人无码精品1区2区3区免费看_久久久久9_91国内精精品久久久久久婷婷 | 成人激情久久_性生交大片xx_免费网站啪啪_精品视频首页_国产伦精品一区二区三区免费观看_超碰人人做人人爱 | av鲁丝一区二区三区_999久久久国产精品_黑人无码在线精品视频_麻豆视频免费入口_日韩人妻无码一区二区三区综合_爆乳上司julia中文字幕 | www.女人_丰满岳翻云覆雨呻吟_刘亦菲裸体视频一区二区三区_亚洲欧美另类久久久精品2019_在线免费黄色av_亚洲天堂一级 | 国产手机在线国内精品_靠比久久久_国产chinasex麻豆videos_成年人午夜视频_成人在线视频免费_国产男女猛烈无遮挡在线喷水 | 午夜福利在线观看6080_国内精品三级_中文日产幕无线码一区_np群乱肉欧美精品大黄毛片_精品成人一区_中文字幕有码在线 | 18禁裸男晨勃露J毛免费观看_国产成a人亚洲精品无码久久_91小视频在线观看_亚洲区精品视频_国产XXXX做受性欧美88_欧美一级特级 | 男女黄色一级片_好吊妞这里只有精品_免费淫片aaaa级_高清不卡一区二区三区香蕉_五月天sese_美女视频黄频大全不卡视频在线播放 | 久在线播放_课中坏事在线看_欧美熟妇bbbbbb搡bbbb_黄色一级性片_亚洲国产精品二区_欧美一区二区三区人妻熟妇 国产精品成人观看视频国产奇米_欧美日韩中文视频_五月丁香五月伦理_亚洲国产精品成人综合久久久久久久_69式高清视频在线观看_四虎com | 成人福利视频在线观看_欧美黑人性生活视频_一边添奶一边添P好爽视频_亚洲看片lutube在线入口_操操操综合_jvid在线观看 | 亚洲无码黄视频在线观看_4d肉蒲团之性战奶水_天天干天天搞天天射_欧美桃色_久艹视频免费看_依人在线 | 亚洲精品无码专区久久久_午夜久久久精品一区二区三区_中文字幕无线码一区_免费看av网_亚洲精品无码久久毛片_伊人黄色 | 孕妇怀孕高潮潮喷视频孕妇_亚洲精品国产99_97色伦色_免费看黄色影片_国产一区二区三区91_欧美日韩性生活片 | 日朝毛片_曰本一区二区三区_97SE色综合一区二区二区_黄色大片视频网站_免费69视频在线观看_精品久久久久久中文字幕 | 日日碰狠狠添天天爽超碰97_人人妻人人做人人爽精品_久久亚洲精选_欧美a一区_妇欲欢公爽公妇精品_av资源在线观看免费高清 | 美女高潮视频网站_国产专区一_超碰在线亚洲_www.99色.com_91a在线观看_亚洲午夜精品毛片成人播放器 | 婷婷激情四射_欧美视频免费在线观看_欧美视频黄_黑人巨大精品欧美一区二区一视频_国产在线精品国偷产拍_欧美国产亚洲日韩在线二区 | 国产免费观看一区_三级网址在线观看_亚洲天堂热_国内自拍视频在线播放_chinesefreexxxx麻豆_亚洲最大视频网 | 52gao在线视频_欧美视频一级_av成人免费网站_久久精品国产一区二区_国产中文字幕在线_91美女高潮出水 | 亚洲男人精品_国产成人青青热久免费精品_麻豆av在线免费看_久久精品国产亚洲av麻豆色欲_久久黄色一级视频_成人a大片在线观看 | 亚洲1区在线观看_久久99热久久99精品_久久亚洲精_亚洲成综合人在线播放_国产兽交xvidseos视频_美女视频黄频大全免费的 | 日本桃色视频_欧美亚洲国产视频_中文字幕一区免费_亚洲一区99_av大全在线播放_无码少妇一区二区三区芒果 | 午夜福利妺妺嘿嘿影视_在线播放国产一区_你懂的日韩_成人欧美一区二区三区色青冈_色柚视频_黄色在线看网站 | 日本一级片_99热这里是精品_成人午夜精品亚洲日韩_在线男人天堂_日本不良网站在线观看_亚洲第1页 | 狠狠色综合色综合网站久久_公牛巨鞭大战人妻H_久久www免费人成_看片中文_久草在线综合网_欧美18videosex性欧美亅izz4_久久伦理中文字幕 | 国产不卡一卡二新区_国产成人午夜福利在线播放_日本日本精品二区免费_日韩成人无码中文字幕_青青草原一区二区_中文亚洲av片不卡在线观看 | 91黄色在线视频_国产精品99久久久久久www_国产成人av免费看_日韩高清亚洲日韩精品一区二区三区_日韩AV无码成人精品国产_亚洲avtv永久综合在线 | 日本一本高清_青草草视频在线观看_大香伊蕉在人线视频777_嫩草天堂_日韩精品无码一区二区三区_亚洲精品综合在线 | 人妻少妇乱子伦喷水_在线一区二区三区做爰视频网站_十六以下岁女子毛片免费_国产精品jvid辛尤里在线观看_久久极品_欧美精品免费看 | 伊伊人成亚洲综合人网香_91视频天堂_久久avav_青草青视频在线观看_国产精品一区二区无码视频公司_日韩亚洲AV无码一区二区不卡 | 91av免费观看_日韩最新在线_国内偷自第一区二区三区_色av在_香蕉行情_欧美精品区 | 亚洲精品乱码久久久久久蜜桃麻豆_成人黄色网_国产日韩欧美综合一区二区三区_99热在线观看精品_亚洲综合首页_国产成人免费无码AV在线播放 | 国产精品日日夜夜_伦理一级毛片_久久午夜福利免费无码_综合久久久久_性欧美巨大乳boob_а天堂中文地址在线 | 九幺91短剧免费网站_国产精品一区二区在线看_国产91色在线播放_人人干夜夜操_国产日韩精品一区二区三区春色_在线A级毛片无码免费真人 | 人妻体验按摩调情BD_91freehdxxxx亚洲_国产成人无码免费视频97动漫_日韩一级不卡_亚洲精品xxxx_japanese丰满少妇 | 手机在线观看黄色网址_中国毛片毛片_www免费视频com_久久国产欧美日韩精品_91蜜桃麻豆媒体成人影院_精品国产一区二区三区免费 | 久久久久亚洲AV成人片乱码_成人无码区免费a片视频_中国熟女仑乱hd_亚洲a一级视频_古装A级野外爱做片视频_办公室娇喘的短裙老师 | 亚洲午夜AV久久久精品影院色戒_国产黄色大片免费看_国产人与动牲交毛长_黄色一区二区三区_天堂网91_青青久久综合 | 午夜福利在线观看6080_国内精品三级_中文日产幕无线码一区_np群乱肉欧美精品大黄毛片_精品成人一区_中文字幕有码在线 | 99re这里只有精品视频在线观看_久插国产_免费av福利在线观看_亚洲女毛多水多21p_亚洲性爽_狠色狠色狠狠色综合久久 | 伊人小视频_少妇精品一区二区三区在线观看_91在线视频精品_精品国产乱码aaa一区二区_伊人avav_日本天堂一区 |