Re: 問 MFC 和 C# data type的問題 ?
※ 引述《mystify.bbs@bbs.nchu.edu.tw (放牧中 ~~)》之銘言:
: 我用 C# 引入一個 MFC寫的 dll ,
: 這個 函式在 MFC 中的原型是這樣的 :
: DWORD ProductString(DWORD, LPVOID S);
: 請問各位大大 , 我再引入時, LPVOID 這個型態我在 C# 中要用哪一個型態呢 ?
請用 IntPtr 型別
: [DllImport(CPDll, SetLastError = true, CharSet = CharSet.Auto)]
: internal static extern uint
: ProductString(ulong _NumDevices, (這邊要怎麼寫) DString);
ProductString(ulong _NumDevices, IntPtr DString);
---
底下是 MS$ C/C++ <-> MS$ C# 型別轉換對照表
┌─────────────────┬──────────────────┐
│MS$ C/C++ │MS$ C# │
├─────────────────┼──────────────────┤
│HANDLE, LPDWORD, LPVOID, void* │IntPtr │
├─────────────────┼──────────────────┤
│LPCTSTR, LPCTSTR, LPSTR, char* │String [in] │
│const char*, Wchar_t*, LPWSTR │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 │
└─────────────────┴──────────────────┘
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.67.4.232
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章