最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#與C++之間類型的對應知識點總結

 更新時間:2019年08月26日 15:51:59   作者:遙望星空  
這篇文章主要介紹了C#與C++之間類型的對應知識點總結,對此有需要的朋友們可以參考下。

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

另: 在進行string轉換時,需要加入前綴[MarshalAs(UnmanagedType.LPStr)]lpdword 對應于 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<struct>

[In] ref <struct>

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#調用DLL文件時參數(shù)對應表

Wtypes.h中的非托管類型 非托管 C語言類型 托管類名 說明

HANDLE void* System.IntPtr 32 位
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.StringBuilder 用 ANSI 修飾。
LPCSTR Const char* System.String 或System.StringBuilder 用 ANSI 修飾。
LPWSTR wchar_t* System.String 或System.StringBuilder 用 Unicode 修飾。
LPCWSTR Const wchar_t* System.String 或System.StringBuilder 用 Unicode 修飾。
FLOAT Float System.Single 32 位
DOUBLE Double System.Double 64 位

習慣用C#寫東西,但平時又會碰到很多要用win32 API的地方,所以經(jīng)常要用DllImport,但win32函數(shù)的類型寫法是很龐雜的,相信為之困擾的不止我一個,現(xiàn)在我整理一份我個人的理解如下,希望高人不吝賜教。

我的基本原則有如下幾點:

1、下面都是針對32位系統(tǒng)的,所以int是32位.long也是32位;

2、各種句柄類的(H開頭),我認為一律是System.IntPtr,到目前為止沒發(fā)現(xiàn)出錯;如果哪位在使用中出錯,請指出;

3、LP和P,我實在不懂(對C 不太了解),對于LP和P開頭的函數(shù),如果是和STR有關的,一律寫為System.String,像PLCID這樣指向什么東西的,寫為System.UInt32(因為指向另一個地址,那就是指針,指針是32位吧),int之類的數(shù)值型,那我就寫為int[],以方便.net程序引用(寫成System.UInt32的話,給API調用應該也不會出錯,但.net程序就不好引用了)

如有意見,歡迎指教。謝謝

BOOL=System.Int32
BOOLEAN=System.Int32
BYTE=System.UInt16
CHAR=System.Int16
COLORREF=System.UInt32
DWORD=System.UInt32
DWORD32=System.UInt32
DWORD64=System.UInt64
FLOAT=System.Float
HACCEL=System.IntPtr
HANDLE=System.IntPtr
HBITMAP=System.IntPtr
HBRUSH=System.IntPtr
HCONV=System.IntPtr
HCONVLIST=System.IntPtr
HCURSOR=System.IntPtr
HDC=System.IntPtr
HDDEDATA=System.IntPtr
HDESK=System.IntPtr
HDROP=System.IntPtr
HDWP=System.IntPtr
HENHMETAFILE=System.IntPtr
HFILE=System.IntPtr
HFONT=System.IntPtr
HGDIOBJ=System.IntPtr
HGLOBAL=System.IntPtr
HHOOK=System.IntPtr
HICON=System.IntPtr
HIMAGELIST=System.IntPtr
HIMC=System.IntPtr
HINSTANCE=System.IntPtr
HKEY=System.IntPtr
HLOCAL=System.IntPtr
HMENU=System.IntPtr
HMETAFILE=System.IntPtr
HMODULE=System.IntPtr
HMONITOR=System.IntPtr
HPALETTE=System.IntPtr
HPEN=System.IntPtr
HRGN=System.IntPtr
HRSRC=System.IntPtr
HSZ=System.IntPtr
HWINSTA=System.IntPtr
HWND=System.IntPtr
INT=System.Int32
INT32=System.Int32
INT64=System.Int64
LONG=System.Int32
LONG32=System.Int32
LONG64=System.Int64
LONGLONG=System.Int64
LPARAM=System.IntPtr
LPBOOL=System.Int16[]
LPBYTE=System.UInt16[]
LPCOLORREF=System.UInt32[]
LPCSTR=System.String
LPCTSTR=System.String
LPCVOID=System.UInt32
LPCWSTR=System.String
LPDWORD=System.UInt32[]
LPHANDLE=System.UInt32
LPINT=System.Int32[]
LPLONG=System.Int32[]
LPSTR=System.String
LPTSTR=System.String
LPVOID=System.UInt32
LPWORD=System.Int32[]
LPWSTR=System.String
LRESULT=System.IntPtr
PBOOL=System.Int16[]
PBOOLEAN=System.Int16[]
PBYTE=System.UInt16[]
PCHAR=System.Char[]
PCSTR=System.String
PCTSTR=System.String
PCWCH=System.UInt32
PCWSTR=System.UInt32
PDWORD=System.Int32[]
PFLOAT=System.Float[]
PHANDLE=System.UInt32
PHKEY=System.UInt32
PINT=System.Int32[]
PLCID=System.UInt32
PLONG=System.Int32[]
PLUID=System.UInt32
PSHORT=System.Int16[]
PSTR=System.String
PTBYTE=System.Char[]
PTCHAR=System.Char[]
PTSTR=System.String
PUCHAR=System.Char[]
PUINT=System.UInt32[]
PULONG=System.UInt32[]
PUSHORT=System.UInt16[]
PVOID=System.UInt32
PWCHAR=System.Char[]
PWORD=System.Int16[]
PWSTR=System.String
REGSAM=System.UInt32
SC_HANDLE=System.IntPtr
SC_LOCK=System.IntPtr
SHORT=System.Int16
SIZE_T=System.UInt32
SSIZE_=System.UInt32
TBYTE=System.Char
TCHAR=System.Char
UCHAR=System.

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 位

以上就是本次介紹的全部知識點內(nèi)容,感謝大家對腳本之家的支持。

相關文章

  • c# 實現(xiàn)RSA非對稱加密算法

    c# 實現(xiàn)RSA非對稱加密算法

    RSA解決了對稱加密的一個不足,比如AES算法加密和解密時使用的是同一個秘鑰,因此這個秘鑰不能公開,因此對于需要公開秘鑰的場合,我們需要在加密和解密過程中使用不同的秘鑰,加密使用的公鑰可以公開,解密使用的私鑰要保密,這就是非對稱加密的好處?!?/div> 2021-06-06
  • C# webservice接口編寫、發(fā)布與測試

    C# webservice接口編寫、發(fā)布與測試

    這篇文章主要介紹了C# webservice接口編寫、發(fā)布與測試,文章通過圖文結合的方式給大家介紹的非常詳細,對大家的學習或共組有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • C# 實現(xiàn)計算生辰八字

    C# 實現(xiàn)計算生辰八字

    生辰八字,簡稱八字,是指一個人出生時的干支歷日期;年月日時共四柱干支,每柱兩字,合共八個字,故稱。生辰八字在漢族民俗信仰中占有重要地位,古代漢族星相家據(jù)此推算人的命運的好壞。本文我們就來使用C#來實現(xiàn)計算生辰八字。
    2015-03-03
  • c#文件助手類分享(讀取文件內(nèi)容 操作日志文件)

    c#文件助手類分享(讀取文件內(nèi)容 操作日志文件)

    這篇文章主要介紹了c#文件助手類,實現(xiàn)的功能包括日志文件操作、獲取路徑中的文件名稱、讀取文件內(nèi)容等功能,大家參考使用吧
    2014-01-01
  • 如何利用C#正則表達式判斷是否是有效的文件及文件夾路徑

    如何利用C#正則表達式判斷是否是有效的文件及文件夾路徑

    項目中少不了讀取或設置文件路徑的功能,如何才能對輸入的路徑是否合法進行判斷呢?下面這篇文章主要給大家介紹了關于C#利用正則表達式判斷是否是有效的文件及文件夾路徑的相關資料,需要的朋友可以參考下
    2022-04-04
  • C#實現(xiàn)IP攝像頭的方法

    C#實現(xiàn)IP攝像頭的方法

    這篇文章主要介紹了C#實現(xiàn)IP攝像頭的方法,涉及C#IP連接與攝像頭視頻錄像的相關技巧,需要的朋友可以參考下
    2015-04-04
  • C#如何自定義multipart/form-data的解析器

    C#如何自定義multipart/form-data的解析器

    這篇文章主要介紹了C#如何自定義multipart/form-data的解析器,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • C#流程控制詳解

    C#流程控制詳解

    這篇文章主要介紹了C#流程控制詳解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • C# SQlite操作方法小結

    C# SQlite操作方法小結

    這篇文章主要介紹了C# SQlite操作方法,較為詳細的講述了SQLite的下載與C#針對SQLite的連接、創(chuàng)建、與執(zhí)行SQL語句等操作相關技巧,需要的朋友可以參考下
    2016-07-07
  • 使用C#創(chuàng)建Windows服務的實例代碼

    使用C#創(chuàng)建Windows服務的實例代碼

    這篇文章主要介紹了使用C#創(chuàng)建Windows服務的實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07

最新評論

博爱县| 铅山县| 蒲江县| 城固县| 常宁市| 开封县| 常州市| 双牌县| 云林县| 辽源市| 阿拉善盟| 芒康县| 平陆县| 长乐市| 乐业县| 祥云县| 景宁| 长春市| 安吉县| 高淳县| 濉溪县| 雷州市| 团风县| 临洮县| 郴州市| 阆中市| 潮州市| 广州市| 嘉禾县| 崇文区| 平潭县| 类乌齐县| 太白县| 西畴县| 华亭县| 贵港市| 济南市| 南华县| 湖口县| 承德县| 长顺县|