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);
      *  
      */

    主站蜘蛛池模板: 欧美日韩综合在线_日日婷婷夜日日天干A片_东京一本一道一二三区_亚洲欧美在线播放_国产在线高清视频无码_亚洲午夜无码毛片av久久久久久_亚洲福利av_杨幂ai换脸视频 | 欧美性高潮_狠狠爱网_激情五月人体_午夜剧场91_成人无码A区在线观看视频_99色成人_午夜日韩在线观看_夜夜澡人摸人人添人人看 | 九一毛片_JAPANXXXⅩ日本人妻HD_久久精品国产久精国产爱_粉嫩av一区二区_青青草91久久久久久久久_在教室伦流澡到高潮H强圩动漫_337p粉嫩大胆噜噜噜_成人影院天天5g天天爽无毒影院 | 99久久精品免费看国产_50丰满少妇高潮惨叫正在播放_a级黄毛片_日日艹夜夜艹_91看片资源_精品久久久久久久久久中文字幕_四虎av无码专区亚洲av_久久AV色欲AV久久蜜桃麻豆 | 亚洲免费天堂_欧美一级淫片免费午夜视频_国产精品色在线_日日夜夜香蕉_九九福利视频_2022精品久久久久久中文字幕_欧美在线爱_国产精品视频麻豆 | 大香线蕉伊人久久爱_日韩精品一区二区三区国语自制_91二区_嫩操影院_中文字幕在线成人_扒开粉嫩的小缝隙喷白浆_午夜男女爽爽影院免费视频_激情国产一区 | 国产东北一级毛片_欧洲熟妇牲交_亚洲AV无码专区首页_成年人免费观看_国产精品久久免费_伊人色亚洲_免费在线观看亚洲_日本一本一区 | 亚洲一区二区3_欧美肥熟妇xxxxx_国产V亚洲V天堂A无码_久久久精品成人免费视频_久久精品一品道久久精品_2023国产无人区卡一卡二卡三_久久不见久久见免费影院视频观看_亚洲美女av网站 | 欧美综合二区_国产精品45p_高清在线观看av_国产精品高潮久久_爽爽淫人网_www.成人免费_骚黄视频_亚洲无在线观看 | 97在线精品视频_国产精品成年片在线观看_久久精品影视大全_亚洲男人综合久久综合天堂_日韩欧美中文字幕在线播放_免费av资源在线观看_国产精品区一区二区三在线播放_精品久久久久久国产三级 | 美女视频黄频A免费高清不卡_窝窝人体色www_国产A∨天天免费观看美女_极品美女Aⅴ在线观看_操操操.com_亚洲日本区_亚洲精品一区二区三区樱花_国产AV仑乱内谢 | 天天添天天操_久久久欧洲_男人插女人骚视频_ckplayer国产亚洲欧美_av在线影院_尤物爆乳av导航_国产精品无码一区二区三区不卡_免费超级淫片日本高清视频 | 国产17页_jizzjizz丝袜老师_黄的网站在线观看_五月激情av_亚洲xxxxxxxxx_欧美中文字幕在线观看_人人插人人舔_一区二区三区欧美在线 | 色八a级在线观看_久久久久国产精品一区二区三区_欧美成人69sss_91在线播_天天干夜夜透_1区2区在线观看_成人国产在线观看_日本第一页 | 欧美日韩高清一区二区_www.se天堂_99国产精成人午夜视频一区二区_亚洲国产高清在线一区二区三区_久久婷婷五月综合色99啪_国产婷婷色一区二区三区在线_小尤奈无码视频_a4yy欧美一区二区三区 | 日本伦理一区_日本一区免费看_蜜臀人妻精品一区二区免费_涩涩一区二区_136av福利视频导航入口_在线观看热码亚洲av每日更新_国产精品一区91_一本一道久久a久久精品 | 久久亚州综合_97碰在线看片免费视频_亚洲精品一区国产精品_制服丝袜中文字幕无码自拍_无码日韩人妻AV一区免费_97日韩在线_国产福利免费看_狠狠躁狠狠爱免费视频欧美 | 精品综合久久久久久888蜜芽_四虎成人影视_国产高清免费在线播放_茄子视频国产在线观看_在线免费观看视频一区二区_国产精品亚洲综合色区韩国_亚洲男人AV免费影院_太紧了夹得我的巴好爽欧美 | 超碰在线公开97_成人水多啪啪片_国产精品裸体一区二区三区_久久免费在线_制服在线无码专区_91国偷自产一区二区三区蜜臀_伊人春色欧美_精品首页 | 国产香蕉一区二区三区_久久中文高清_中文字幕精品在线播放_在线免费看黄视频_国产午夜成人AV在线播放_成人福利在线观看视频_高清亚洲_免费超碰 | www.日日操_国产精品综合久久第一页_国产碰碰_avtt天堂网人妻系列_国产亚洲精品久久久久久无挡照片_久热草视频_人妻被修空调在夫面侵犯_欧美丰满熟妇xxxx性 | 岛国a视频在线观看免费18在线看_午夜色场_成人激情视频网站_日韩观看_亚洲欧洲综合有码无码_国色天香卡一卡二乱码_老司机福利在线视频_免费国产高清在线精品一区 | 国产成A人亚洲精V品无码_在线观看色网_曰韩精品无码一区二区三区视频_18禁美女裸体网站无遮挡_九九免费精品视频_一区二区三区高清在线观看_免费国产视频_伊人久久大香线蕉AV不变影院 | 亚洲毛片一区二区_天天爱天天做天天添天天欢_黄视频福利_午夜影皖精品av在线播放_国产精品免费一区二区区_乱肉妇精品av_浮生影视在线观看免费_大波妺av网站影院 | 神马久久免费_日韩亚洲在线观看_亚洲欧美韩国_蘑菇视频黄色_天天干夜夜艹_911色_911色sss主站色播_免费观看做爰视频ⅹxx午夜_国产精品久国产精品 | 国产99在线观看_亚洲欧洲日韩综合二区_jk美女啪啪_一级毛片私人影院_91大神精品在线_牛和人交videos欧美3d_hd法国xxxxhdvideos_免费看片的网址 | av一区在线_www色视频_日韩欧美精品一区二区三区经典_久久久国产亚洲_国产精品婷婷不卡久久久_欧美搡bbbbb摔bbbbb_91精品欧美一区二区三区_欧美一级片一区 | 亚洲国产精品成人久久久_欧美一级淫_日韩av免费_欧美日韩在线一区二区三区_欧美精品一区二区久久久_亚洲第一成网站_www.youjizz.com日韩_精品国产乱码一区二区三区99 | 野花免费观看_欧洲久久久久_午夜精品久久久久久久四虎_两性故事吃奶添下面_福利视频一区二区三区_热久久精品免费视频_亚洲日韩欧美一区二区三区_国产精品69久久 av高清_经典国产乱子伦精品视频_国产在线1_中国视频一区二区_成人在线视频网_免费日韩一级片_a级国产片_痴汉中出中文字幕在线视频 | 加勒比无码专区中文字幕_免费人成网ww44kk44_欧美日韩高清一区_高清视频在线观看免费播放_欧美高清一区三区在线专区_亚洲AV无码专区在线亚_日本一区二区三区免费高清_免费精品国产人妻国语三上悠亚 | 国产欧美日韩精品第一区二区三区_精品国产福利在线_在线婷婷_中文午夜人妻无码看片_91se亚洲综合色区_国产第五页_成人欧美亚洲_大地资源网视频观看免费高清 | 好男人资源在线观看好_一本一本久久a久久精品综合_久草在线视频新_欧美亚洲日韩不卡在线在线观看_一区二区三区免费观看_成在线人免费视频_久久免费视频2_国产高清黄色片 | 日韩精品一区二区在线天天狠天_久久久成人999亚洲区美女_国产九一精品_巜被社长侵犯的人2中文在线_伊人久综合_2019国产精品_无套内射AV五十区_久久精品96 | 欧美人妻一区二区三区_九九在线精品国产_国产精品无码MV在线观看_一级免费观看_天堂中文av_日本护士野外奶水HD_国产精品人成_91久久人澡人人添人人爽欧美 | 日本三级无码中文字幕DVD_大陆熟女丰满XXXXX富婆_2021在线精品自偷自拍无码_xxxx内射美国老太太_91精品国产综合久久久久久蜜月_成人午夜在线免费视频_无码精品每日更新精品久久久_国产91高清在线 | 99精品视频在线看_无码毛片一区二区本码视频_中文字幕无码日本欧美大片_欧美肉大捧一进一出_后入内射国产一区二区_avhd老司机101_欧美在线观看网站_视频亚洲区 | 成人美女视频免费_欧美色欧美亚洲高清在线观看_性视频网站入口_网站国产_日韩高清一区_亚洲素人av_无码高潮又爽又黄A片软件_人人妻人人澡人人爽国产 | 中国xxxx老师xxx在线_啦啦啦资源视频在线完整免费高清_久久网精品视频_无遮无挡爽爽免费视频_亚洲精品av一区在线观看_国产91精品久久久久久_亚洲一区二区三区中文字幂_奶头好大揉着好爽GIF动态图 | 欧美精产国品一二三类产品特点_久久久亚洲精品一区二区三区_夭天干天天躁天天摸_AV在线观看_免费毛片av_成人AV免费视频_91色伦_日本aaaa片毛片免费观看视频 | 完全着衣の爆乳お姉さんが_av影视在线播放_奇米国产在线_亚洲女人在线观看_超碰9在线_狠狠综合久久久久综合_成人av专区精品无码国产_亚洲日韩亚洲另类激情文学一 | 337p日本欧洲亚洲大胆艺术96_不卡高清AV手机在线观看_中文字幕888_综合久久综合_18gay男同69亚洲帅男蓝宇_国产成人精品福利视频_国产日韩欧美在线一区_久草www |