C++을 이용하여 만든 DLL을 C#에서 사용하려다 보니, 함수 매개변수를 C#에 맞게 변환하여 써야하는데 헷갈려서 정리함 ㅎ
Unmanaged to Managed type translation table
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 |
출처 : https://lidong2121.wordpress.com/2007/04/20/unmanaged-to-managed-type-translation-table/
댓글