99国产欧美另娄久久久精品_国内自拍农村少妇在线观看_久久亚洲道色宗和久久_日本aⅴ大伊香蕉精品视频_亚洲国产欧美日韩欧美特级_日本视频免费在线观看

  • 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)換方式,可能會有重復(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);
      *  
      */

    主站蜘蛛池模板: 国产精品久久久天天影视香蕉_黄色毛片前黄_一本色道久久88亚洲精品综合_青青草欧美_国产一区二区三区天码_久久久精品区_怡春院性无码免费视频_成人短篇合集t×t | 国产精品免费视频xxxx_日本精品一区二区三区四区的功能_国产午夜视频免费_欧美不卡在线视频_日日嗨av一区二区三区四区_国产高清乱伦自拍_无码男男肉片在线观看_国产午夜毛片 | 国产精品久久久久久a_亚洲美腿欧美激情另类_2020国产精品香蕉在线观看_91性视频_A级毛片毛片免费观的看久_亚洲精欧美一区二区精品_jizz麻豆视频_密臀av一区二区三区 | 中文无遮挡h肉视频在线观看_亚裔av_亚洲人成网站999久久久综合_亚洲一区二区三区四区五区不卡_99精品人妻少妇一区二区_国产又爽又黄又不遮挡视频_999久久国精品免费观看网站_国内精品人妻无码久久久影院蜜桃 | eeuss秋霞午夜免费影院四平_天天爱天天操天天干_少妇高潮久久久久久潘金莲_福利一区二区_国产成在线观看免费视频成本人_成人毛片a_999久久精品_国产男女猛烈无遮挡免费视频 | 欧美日本一区二区三区视频_黄色大片一区_综合色网站_91久久人澡人人添人人爽爱播网_久久精品中文字幕有码_四季久久免费一区二区三区四区_97色图片_久久香蕉国产线看观看6 | 热99在线观看_亚洲日韩看片无码超清_在线观看ww_亚洲一区二区视频网站_久久精品99视频_A级毛片100部免费观看_国产黑色丝袜流白浆视频_伊人yinren22综合开心 | 成年肉动漫在线观看无码_国产一级黄色录像_91多人xxx少妇_爱韩av_116美女午夜视频_成人免费高清在线播放_二区三区福利_AA级女人大片免费视频 | 国产精品麻豆久久_日日躁夜夜躁aaaaxxxx_av成人免费看_国产区精品_日韩中文在线_亚洲欧美成人在线_亚洲精品无码久久久久久_亚韩无码一区二区在线视频 | 少妇挑战三个黑人惨叫4p国语_护士奶头又白又大又好模_在线播放精品视频_亚洲一道AV无码播放_伊人中文字幕在线观看_中文字幕av一区二区三区_狠狠操91_我要色综合色综合久久 | 欧美日韩激情一级_自拍在线观看_九色国产在线观看_欧美一区二区三区久久久精品_一区二区午夜_国产精品视频一区在线观看_久久精品人妻无码专区_国产专区免费av无码 | 999久久久国产精品消防器材_国产美女视频一区_日韩三级免费_国产超碰在线观看_亚州ava_亚洲AV无码专区日韩乱码不卡_久久久国产乱子伦精品_久久ri资源网 | 第84页国产精品_日本天堂视频在线观看_欧美在线三级_欧产日产国产精品视频_日韩精品无码免费专区午夜_国产超精品无码不卡AV_中文字幕无码肉感爆乳在线_成人v片 | 日韩中文字幕二区2017_精品人伦一区二区三区蜜桃视频_色爱区成人综合网_爱爱精品_欧美日本性视频_亚洲三级片福利视频_456成年女人免费视频_99久久精品久久久久久ai换脸 | 久久天天躁夜夜躁狠狠躁_俄罗斯美女的天堂一级毛片_久久精品久久精品久久精品_免费吃奶摸下激烈视频_中文字幕av在线免费_成人免费毛片立即播放_久久国产精品久久精品_国产午夜伦理 | 国产大片免费在线观看_中文字幕一区在线观看视频_看黄色一级视频_飘雪影院免费版在线观看视频_九九久久99_av蜜臀一区二区三区久久_日本老妇性视频_菠萝蜜麻豆一区 | 国产三级久久久精品麻豆三级_黄色成年人国语版在线观看_国产gv在线观看受被做哭_伦理片一级片_免费三区_狠狠操导航_久久精品对白_操操综合网 | 免费A级毛片高清视频哦哦_黑人巨茎美女高潮视频_日本精品一区二区三区在线播放_国产乱AⅤ一区二区三区_99av海角社区_剑来动漫高清在线观看_亚洲色图狠狠爱_成人淫片免费视频95视频 | 噜啊噜在线观看_国产成人精品国内自产拍免费看_中国成人免费视频_伊人久久成人网_久久久国产免费_亚洲中文字幕无线无码毛片_在线观看国产一区_在线观看欧美日韩国产 | 无码人妻丰满熟妇精品区_51国产午夜免费福利视频_波多野结衣在线播放_99爱免费观看国语_欧美特级黄色_国产精品96久久久久久又黄又硬_欧美性战a久久久久久_欧美精品一区二区三区四区五区 | chinese性内射高清5_亚洲人成精品久久久久_欧美日韩在线亚洲一区蜜芽_亚洲XXXX做受欧美_无码精品AV久久久奶水小说_国产成人女人毛片视频在线_女高中生第一次破苞av_www.欧美日韩 | 国产精品九九九九九_精品久久久久久久久久ntr影视_中文字幕一区av_狼人久久乐_无码乱码av天堂一区二区_免费观看成人毛片a片2008_日韩有码在线观看_伊人久久精品无码二区麻豆 | 色视频免费观看_一区二区天堂_久久久久久亚洲精品不卡4k岛国_蜜桃久久精品乱码一区二区_年轻的少妇做a_国产精品国模大尺度视频_无遮挡十八禁污污网站免费_91色在线播放 | 日韩精品一区二区三区丰满_国产成人无码AV麻豆_黄一级毛片_911亚洲精品第一_狠狠插天天干_韩国动漫AV纯肉无码AV在线播放_国产精品久久久久久福利一牛影视_超碰91青青国产福利手机看片 | AAA无码偷拍亚洲_欧美成人aaaaa片_午夜影院男女_天天综合视频_国产精品亚洲专区在线观看_www.国产网站_37人体做爰久久久久久_爱射综合网 | 亚洲精品成a人在线_成人在线免费观看视频网站_久久不见久久见www免费视频_99在线观看_在线高清理伦片a_久久精品看_成人精品区_天堂av性爱在线 | 久久天天躁夜夜躁狠狠躁_俄罗斯美女的天堂一级毛片_久久精品久久精品久久精品_免费吃奶摸下激烈视频_中文字幕av在线免费_成人免费毛片立即播放_久久国产精品久久精品_国产午夜伦理 | 12av视频_性视频毛片_国产精品无码dvd在线观看_欧美人体一区二区视频_人人干夜夜_国产超碰无码最新上传_国产日韩一区二区_精品AV无码国产一区二区 | av视屏_黄网站在线观_被两个黑人玩得站不起来了_黄色毛片大全_国产精品人妻无码久久久_成人性生交大片免费视频_黄色视网站_综合欧美亚洲 | 狠狠操在线_日韩免费AV无线在码_国产夜色av_亚洲精品456在线播放第一页_99人妻熟女国产精品日韩资电话_在线观看www._午夜精品一区二区三区在线视频_国产免费成人av | 亚洲一区二区三区自拍公司_久久久久亚洲AV片无码V_久久久国产打桩机_强奷表妺好紧2_好吊色成人在线视频_靠比视频在线免费观看_国产一级视频免费观看_亚洲第一激情 | 曰韩观看免费_yellow高清免费观看日本_欧美伦理一区二区三区_无码AV无码一区二区桃花岛_亚洲一区二区制服在线_性8sex8亚洲网友自拍_69综合精品国产二区无码_在线免费观看v片 | 男女啪啪免费观看网站_欧美性开放情侣网站_别c我啊嗯国产av一毛片_79年熟女大胆露脸啪啪对白P_久久久久久久一级_日韩国产色_日本视频黄_欧美一区二区播放 | 一区二区三区日本久久久_日本老妇xxxx_国产成人动漫_天天干天天操天天做_国产99午夜精品一区二区三区_中文字幕人妻丝袜成熟乱_亚洲中文字幕一区二区精品_国产高清在线精品二区 | 在阳台上玩弄人妻的乳球_久久精品无码一区二区WWW_黄色毛片基地_在线一区不卡_免费观看国产美女裸体视频_九色porny丨首页入口网页_一区二区三区在线_国产精品国产三级国产专区50 | 久久永久免费视频_凹凸69堂国产成人精品_亚洲第一极品精品无码久久_19禁无遮挡啪啪无码网站_亚洲精品乱码久久久久久久久久久久_99人人爽_欧美日韩一区二_亚洲国产日韩一区二区三区 免费动漫黄爽A片在线观看_一区精品视频_91在线无精精品秘?入口九色_av网站免费播放_亚洲综合无码精品一区二区三区_国产精品嫩草99a_av免费看国产_日韩αv在线 | 91大神在线观看视频_久久国产色av老熟蜜臀av_一本—道久久a久久精品蜜桃_亚洲AV日韩AV鸥美在线观看_国产高潮a片羞羞视频涩涩_久久伊人影院_国产成人无码国产亚洲_成人av视频 | 久热国产精品视频_波萝蜜A毛黄AAA片_老师掀起裙子让我把j放进去视频_亚洲精品乱码久久久久膏_亚洲欧美一区二区三区_天天躁日日躁狠狠躁aab吃奶_美女又黄又免费视频_日韩无码系列综合区 | 色肉色伦交av色肉色伦_成人在线三级_超碰五月天_亚洲精品在线91_日产日韩亚洲欧美综合_西西4444WWW大胆无码_国产大BBWBBWHD视频_久艹精品 | 国产h视频在线_日韩精品真人荷官无码_日日操日日摸_夏目友人帐第7季高清免费观看_宅男影院在线播放999_91视频网页版_亚洲黄一区二区三区_亚洲精品人人 | 欧美1区2区在线观看_亚洲线精品一区二区三区四区_日本黄色免费网址_亚洲AV成人午夜一区二区_中文字幕在线不卡播放_粗大猛烈进出白浆视频_久草高清在线_欧美一级理论性理论a |