免费国产网站_秋霞午夜一区二区三区视频_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);
      *  
      */

    主站蜘蛛池模板: 亚洲α片_亚洲精品毛片一区二区三区_2020亚洲午夜无码天堂_青青久久精品_无码AⅤ最新AV无码专区_有码精品 | 国产精品一级_大地资源在线观看中文第二页_亚洲人成网站在线播放vr_纯肉浪货高H调教SM_无码精品国产VA在线观看_男女啪啪高清无遮挡免费 | 国产最新地址_亚洲AV无码一区二区三区网站_久久久av大桥未久一区二区_久久国产精品99国产_挺进长腿秘书的臀缝耸动小说_亚洲精品中文字幕视频 | 成人黄网站A片免费观看_日韩一区日韩二区_国产色一区二区_欧洲色在线_久久亚洲精品无码Va白人极品_狠狠色噜噜狠狠狠狠aV不卡 | 狠狠穞www老司机的福利_狼人大香伊蕉在人线国产_国产精品色欲AV蜜臀麻豆_最近日本中文字幕_超碰9999_少妇人体色www网站 | 末成年女A∨片一区二区_黄色一级视频播放_区一区二视频_亚洲国产精品专区_欧美精选一区_69av视频 | 按摩高潮A片一区二区三区_人人妻人人爽人人澡AV_日韩欧美网_日韩激情一区二区三区_欧美成人一区二区三区高清_日本伦理片大全 | 色婷婷一区二区精品无码区_91久久夜色精品国产爽爽_亚洲鲁丝片AV无码多人_爱爱二区_欧美在线播放一区_精品麻豆丝袜高跟鞋AV | 老司机午夜在线观看_日本成人在线一区_2019中文字幕在线播放_狠狠躁夜夜躁人人躁婷婷_欧美一区二区视频在线观看_亚洲国产18 | 国产婷婷激情综合三区_国产视频亚洲一区_精品九九久久_国产网色_天堂色在线_www.在线观看麻豆 | 日日干夜夜干_樱桃成人精品视频在线播放_免费视频二区三区_韩国国内大量揄拍精品视频_韩国一级片免费在线观看_国产精品久久久久久久密密 | 亚洲自偷自拍另类小说_无码ol丝袜高跟秘书在线观看_粉嫩少妇bbbbbb视频_久久亚洲免费_黄www片_99re热在线视频 | 国产麻豆91欧美一区二区_亚洲欧洲精品一区二区三区四区_国产日韩精品久久久_欧美a级理论片_77777_亚洲午夜久久多人_欧美丰满老妇性猛交 | 另类老妇奶性生BBWBBW_久久无码人妻影院_a∨色狠狠一区二区三区_国产精品久久久久久久嫩草影视_成人片在线观看地址KK4444_国产精品久久久久久无毒偷食禁果 | 神马久久网站_国产中文字幕网_国产精品sp调教打屁股_中文字幕日韩一区二区三区不卡_在线免费看黄av_天天摸天天碰天天添中文无码 日韩视频播放_国产在线黄色片_日本无遮挡吸乳叫声视频_国产成人在线观看网址_日本男女拍拍拍_1区2区3区在线视频 | sese成人_国产一区二区高清不卡_在线视频播放免费观看_免费一级欧美片在线观看_99热a_精品国产亚洲一区二区在线3d | 玖草视频在线_天天做天天爱夜夜爽毛片毛片_久国产精品_国产黄a三级三级三级老年人_久久一区二区精品视频_黄色大片一区二区三区 | 欧美另类在线视频_小sao货的yin荡之路_久久欧美肥婆一二区_浪潮色诱AV久久久久久久_www免费_欧美高清黄 | 成人第一页_亚洲美乳中文字幕_老汉色av国产亚洲站长工具_蜜臀久久精品久久久久久酒店_女女久久_俺也去五月婷婷 | 欧美在线观看黄色_国产精品福利在线第一页_免费看日本一区二区_偷国内自拍视频在线观看_中国91av_午夜激情免费视频 | 国产欧美精品一区二区粉嫩_日日噜噜噜噜久久久精品毛片_国产真人无码作爱免费视频_国产精品国产三级国产播12软件_亚洲精品日韩色噜噜久久五月_永久免费草莓视频入口 | 国产在线观看无码不卡_熟女丝袜潮喷内裤视频网站_国产一区欧美一区_国语精品_欧美黄色片在线_99热影视 国产性精品_久久精品无码人妻属于什么级别_成人性视频在线_久久超碰免费_国产精品综合久久久久_激情偷乱人伦在线视频 | 叶子楣成人爽a毛片免费啪啪_国产精品无码AV片在线观看播_久艹在线观看_国产精品一区二区久久不卡_亚洲大乳无码一级毛片_久久综合av色老头免费观看 | 中国xxxxxx片免费播放_观看麻豆视频_国产真实乱偷精品视频_亚洲乱妇熟女爽到高潮的片_人妻久久久一区二区三区_免费无码成人AV在线播放秋霞 | 国产免费久久久_午夜精品久久久久久中宇_母乳1区在线_少妇被躁爽到高潮无码麻豆AV_国产亚洲精品成人AA片在线播_日本三级在线播放线观看免 | 码A片国产精品18久久久..._欧美三片在线视频观看_四虎成人精品在永久在线_色网在线_欧美一级大黄大色毛片视频_亚洲第八页 亚洲日韩欧洲无码AV夜夜摸_三级网址在线播放_狠狠色噜噜综合社区_zziizzii亚洲日本少妇_99久久麻豆精品国产免_亚洲一区二区三区四区在线观看 | 黄色一级播放_久久91精品国产91久久小草_美女黄网站免费福利视频_欧美亚洲综合网_久久人与动人物a级毛片_欧美视频网站在线观看 | 女生裸体视频网站在线观看_www亚洲视频_午夜在线观看免费_99国产在线_久久久精品免费观看_久久这里只有精品1 | 日日夜夜人人_大地影视中文第二页的背景故事_成人福利_久草成人在线视频_免费草比视频_韩国毛片免费观看 | 九幺91短剧免费网站_国产精品一区二区在线看_国产91色在线播放_人人干夜夜操_国产日韩精品一区二区三区春色_在线A级毛片无码免费真人 | 久久高清一区_在线中文字幕一区_国产内射毛片_亚洲欧美综合精品久久成人网无毒不卡_高潮视频在线播放_国产精品人妻一区二区三区a | 12av在线_把少妇弄高潮了www_日韩成人久久_亚洲免费精品网站_麻豆成人在线视频_香港三级a∨在线观看 | 欧美精品3_国产视频不卡_亚洲春色αV无码专区在线播放_欧美久久久久久久久久_色在线亚洲视频www_日韩精品一区二区亚洲A∨观看 | 国产精品综合av无码_丰满少妇人妻久久久久久4_欧洲极品无码一区二区三区_亚洲精品mv免费_欧美日韩精品视频一区二区_国产精品视频海角社区88 | 成人日韩视频在线观看_绯色蜜臀av性久久久久蜜臀aⅴ_五月天色网站_久久精品资源_欧美日韩中文在线_香蕉伦理超碰久久岛国片 | 天天射日日_久久夜视频_久久免费高清视频_人妻在线日韩免费视频_伦乱天堂_最近2019免费中文第一页 | 午夜社区_国产中文字幕精品_午夜小视频在线免费观看_免费在线视频a_日产精品久久久一区二区福利_www.免费视频网站 | 久爱无码精品免费视频在线观看_精品国产一区二区在线_67194熟妇人妻欧美日韩_尹人香蕉99久久综合网站_又大又爽又黄无码A片_亚洲情av | 免费a级片在线观看_成人无码WWW免费视频_日本xxxx色视频在线观看免费_亚洲成人入口_国产欧美另类久久精品_一级淫片aaaaaaa蜜桃 | 国产麻豆剧传媒免费观看_美女一级毛片免费视频_yellow视频免费观看_四虎永久成年免费影院_日韩淫片_xxxx寡妇xxx极品视频 | 亚洲VA天堂VA欧美VA在线_亚洲AV国产AV综合AⅤ_久久精品夜色噜噜亚洲a∨_亚洲午夜久久久久久久_亚洲毛片在线免费_美女脱个精光露出尿口视频 |