13,007
回編集
249行目: | 249行目: | ||
== C#のデータ型とWindows APIのデータ型 == | == C#のデータ型とWindows APIのデータ型 == | ||
<center> | <center> | ||
{| class="wikitable" | {| class="wikitable" | style="background-color:#fefefe;" | ||
|- | |- | ||
! Windows APIのデータ型<br>(括弧内は対応するC言語の型) ! | ! style="background-color:#66CCFF;" | Windows APIのデータ型<br>(括弧内は対応するC言語の型) | ||
! style="background-color:#66CCFF;" | 対応するC#のデータ型<br>(括弧内は.NET Frameworkでの型名) | |||
! style="background-color:#66CCFF;" | 備考 | |||
|- | |- | ||
| HANDLE (void *) || System.IntPtr<br>System.UIntPtr || x86は4バイト<br>x64は8バイト | | HANDLE (void *)<br>HMODULE<br>HINSTANCE<br>HWND || System.IntPtr<br>System.UIntPtr || x86は4バイト<br>x64は8バイト | ||
|- | |- | ||
| BYTE (unsigned char) || byte (System.Byte) || | | char 配列名 [配列サイズ] || MarshalAs(UnmanagedType.ByValTStr, SizeConst = 配列のサイズ)] public string 配列名 || | ||
|- | |||
| char ** || 文字を渡すとき<br>string (System.String)<br>文字を受け取るとき<br>System.Text.StringBuilder || | |||
|- | |||
| BYTE (unsigned char)<br>UCHAR || byte (System.Byte) || UCHAR型は、C#のstring型およびIntPtr型でも可能。 | |||
|- | |||
| BYTE[] (unsigned char *)<br>PBYTE (byte *) || System.Byte[]<br>[MarshalAs(UnmanagedType.LPArray)] byte[]<br>[MarshalAs(UnmanagedType.LPArray)] Intptr || | |||
|- | |||
| unsigned char & || ref byte || | |||
|- | |- | ||
| SHORT (short) || short (System.Int16) || | | SHORT (short) || short (System.Int16) || | ||
261行目: | 271行目: | ||
| WORD (unsigned short) || ushort (System.UInt16) || | | WORD (unsigned short) || ushort (System.UInt16) || | ||
|- | |- | ||
| INT (int)<br>LONG (long) || int (System.Int32) || | | INT (int)<br>LONG (long) || int (System.Int32) || System.Int16でも取得できる可能性がある。 | ||
|- | |||
| UINT (unsigned int)<br>DWORD (unsigned long)<br>ULONG (unsigned long) || uint (System.UInt32) || | |||
|- | |||
| DECIMAL || decimal (System.Decimal) || | |||
|- | |- | ||
| | | bool || bool (System.Boolean) || | ||
|- | |- | ||
| BOOL (long) || bool (System.Boolean) || | | BOOL (long) || bool (System.Boolean) || | ||
269行目: | 283行目: | ||
| CHAR (char) || 文字を渡すとき<br>char (System.Char)<br>文字を受け取るとき<br>StringBuilder || | | CHAR (char) || 文字を渡すとき<br>char (System.Char)<br>文字を受け取るとき<br>StringBuilder || | ||
|- | |- | ||
| WCHAR(wchar_t) || 文字を渡すとき<br>char (System.Char)<br>文字を受け取るとき<br>StringBuilder || | | WCHAR (wchar_t) || 文字を渡すとき<br>char (System.Char)<br>文字を受け取るとき<br>StringBuilder || | ||
|- | |- | ||
| LPSTR (char *, char[])<br>LPWSTR (wchar_t *, wchar_t[]) || 文字を渡すとき<br>string (System.String)<br>文字を受け取るとき<br>System.Text.StringBuilder || | | PCAHR (char *)<br>LPSTR (char *, char[])<br>LPWSTR (wchar_t *, wchar_t[]) || 文字を渡すとき<br>string (System.String)<br>文字を受け取るとき<br>System.Text.StringBuilder || | ||
|- | |- | ||
| LPCSTR (const char *, const char[])<br>LPCWSTR (const wchar_t *, const wchar_t[]) || 文字を渡すとき<br>string (System.String)<br>文字を受け取るとき<br>System.Text.StringBuilder || | | LPCSTR (const char *, const char[])<br>LPCWSTR (const wchar_t *, const wchar_t[]) || 文字を渡すとき<br>string (System.String)<br>文字を受け取るとき<br>System.Text.StringBuilder || | ||
|- | |||
| LPTSTR (char * または wchar_t *) || 文字を渡すとき<br>[MarshalAs(UnmanagedType.LPTStr)] string<br>文字を受け取るとき<br>System.Text.StringBuilder || | |||
|- | |||
| LPCTSTR (const char * または const wchar_t *) || 文字を渡すとき<br>string (System.String)<br>文字を受け取るとき<br>System.Text.StringBuilder || | |||
|- | |||
| BSTR || 文字を渡すとき<br>string (System.String)<br>文字を受け取るとき<br>System.Text.StringBuilder || | |||
|- | |- | ||
| FLOAT (float) || float (System.Single) || | | FLOAT (float) || float (System.Single) || | ||
|- | |||
| float <配列名>[]<br>float <配列名> [配列サイズ] || float[]<br>ref float[] || | |||
|- | |- | ||
| DOUBLE (double) || double (System.Double) || | | DOUBLE (double) || double (System.Double) || | ||
|- | |||
| double <配列名>[]<br>double <配列名> [配列サイズ] || double[]<br>ref double[] || | |||
|- | |||
| VARIANT || System.Object || | |||
|- | |||
| COLORREF || uint || | |||
|- | |||
| GUID || Guid || | |||
|- | |||
| struct <構造体名> <変数名> || ref <構造体名> <変数名> || | |||
|- | |||
| struct <構造体名> || public struct <構造体名> || <u>out <構造体名></u>であらかじめ構造体をインスタンス化して、変数名を宣言する。 | |||
|} | |} | ||
</center> | </center> |