我有一个C ++代码,我想在C#上使用它。其中一个方法返回HANDLE类型,我不知道如何处理它。我的代码就是这个:
[DllImport("CloudMeshDll.dll")]
public static extern HANDLE GethNextColorFrameEvent();
我可以将HANDLE替换为我为Char *(IntPr)或HRESULT(Int32)所做的任何其他类型吗?
谢谢。
答案 0 :(得分:1)
在Win32 API HANDLE
is defined as void*
中。现在,除非你使用unsafe
,否则C#没有指针类型。因此,处理此问题的标准方法是将HANDLE
(和类似类型)映射到IntPtr
,因为IntPtr
是指针大小的。也就是说,它在32位进程中为32位宽,在64位进程中为64位宽。