亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 4452 | 回復(fù): 0
打印 上一主題 下一主題

關(guān)于C++轉(zhuǎn)C#的一些類型的收集 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-12-20 12:20 |只看該作者 |倒序瀏覽
本帖最后由 keehoo 于 2011-12-20 12:22 編輯

C++中的DLL函數(shù)原型為

  1.         //extern "C" __declspec(dllexport) bool 方法名一(const char* 變量名1, unsigned char* 變量名2)
  2.         //extern "C" __declspec(dllexport) bool 方法名二(const unsigned char* 變量名1, char* 變量名2)
  3.         //C#調(diào)用C++的DLL搜集整理的所有數(shù)據(jù)類型轉(zhuǎn)換方式,可能會有重復(fù)或者多種方案,自己多測試
  4.      //c++:HANDLE(void   *)          ----    c#:System.IntPtr
  5.         //c++:Byte(unsigned   char)     ----    c#:System.Byte
  6.         //c++:SHORT(short)              ----    c#:System.Int16
  7.         //c++:WORD(unsigned   short)    ----    c#:System.UInt16
  8.         //c++:INT(int)                  ----    c#:System.Int16
  9.         //c++:INT(int)                  ----    c#:System.Int32
  10.         //c++:UINT(unsigned   int)      ----    c#:System.UInt16
  11.         //c++:UINT(unsigned   int)      ----    c#:System.UInt32
  12.         //c++:LONG(long)                ----    c#:System.Int32
  13.         //c++:ULONG(unsigned   long)    ----    c#:System.UInt32
  14.         //c++:DWORD(unsigned   long)    ----    c#:System.UInt32
  15.         //c++:DECIMAL                   ----    c#:System.Decimal
  16.         //c++:BOOL(long)                ----    c#:System.Boolean
  17.         //c++:CHAR(char)                ----    c#:System.Char
  18.         //c++:LPSTR(char   *)           ----    c#:System.String
  19.         //c++:LPWSTR(wchar_t   *)       ----    c#:System.String
  20.         //c++:LPCSTR(const   char   *)  ----    c#:System.String
  21.         //c++:LPCWSTR(const   wchar_t   *)      ----    c#:System.String
  22.         //c++:PCAHR(char   *)   ----    c#:System.String
  23.         //c++:BSTR              ----    c#:System.String
  24.         //c++:FLOAT(float)      ----    c#:System.Single
  25.         //c++:DOUBLE(double)    ----    c#:System.Double
  26.         //c++:VARIANT           ----    c#:System.Object
  27.         //c++:PBYTE(byte   *)   ----    c#:System.Byte[]

  28.         //c++:BSTR      ----    c#:StringBuilder
  29.         //c++:LPCTSTR   ----    c#:StringBuilder
  30.         //c++:LPCTSTR   ----    c#:string
  31.         //c++:LPTSTR    ----    c#:[MarshalAs(UnmanagedType.LPTStr)] string
  32.         //c++:LPTSTR 輸出變量名    ----    c#:StringBuilder 輸出變量名
  33.      //c++:LPCWSTR   ----    c#:IntPtr
  34.         //c++:BOOL      ----    c#:bool   
  35.         //c++:HMODULE   ----    c#:IntPtr   
  36.         //c++:HINSTANCE ----    c#:IntPtr
  37.         //c++:結(jié)構(gòu)體    ----    c#:public struct 結(jié)構(gòu)體{};
  38.         //c++:結(jié)構(gòu)體 **變量名   ----    c#:out 變量名   //C#中提前申明一個結(jié)構(gòu)體實例化后的變量名
  39.       //c++:結(jié)構(gòu)體 &變量名    ----    c#:ref 結(jié)構(gòu)體 變量名
  40.       //c++:WORD      ----    c#:ushort
  41.         //c++:DWORD     ----    c#:uint
  42.         //c++:DWORD     ----    c#:int

  43.         //c++:UCHAR     ----    c#:int
  44.         //c++:UCHAR     ----    c#:byte
  45.         //c++:UCHAR*    ----    c#:string
  46.         //c++:UCHAR*    ----    c#:IntPtr

  47.         //c++:GUID      ----    c#:Guid
  48.         //c++:Handle    ----    c#:IntPtr
  49.         //c++:HWND      ----    c#:IntPtr
  50.         //c++:DWORD     ----    c#:int
  51.         //c++:COLORREF  ----    c#:uint

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

  56.         //c++:unsigned char &   ----    c#:ref byte
  57.         //c++:unsigned char 變量名      ----    c#:byte 變量名
  58.      //c++:unsigned short 變量名     ----    c#:ushort 變量名
  59.      //c++:unsigned int 變量名       ----    c#:uint 變量名
  60.      //c++:unsigned long 變量名      ----    c#:ulong 變量名

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

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

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

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

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

  79.         //c++:*int      ----    c#:IntPtr
  80.         //c++:int32 PIPTR *     ----    c#:int32[]
  81.         //c++:float PIPTR *     ----    c#:float[]
  82.       

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


  89.         //c++:handle    ----    c#:IntPtr
  90.         //c++:hwnd      ----    c#:IntPtr
  91.         
  92.         
  93.         //c++:void *    ----    c#:IntPtr        
  94.         //c++:void * user_obj_param    ----    c#:IntPtr user_obj_param
  95.         //c++:void * 對象名稱    ----    c#:([MarshalAs(UnmanagedType.AsAny)]Object 對象名稱


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

  107.         //Win32 Types        ----  CLR Type  
  108.                //Struct需要在C#里重新定義一個Struct
  109.         //CallBack回調(diào)函數(shù)需要封裝在一個委托里,delegate static extern int FunCallBack(string str);

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

  117.         //unsigned   char對應(yīng)public   byte
復(fù)制代碼
轉(zhuǎn)載自:http://blog.sina.com.cn/s/blog_3f8378920100wkfx.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP