如何处理C#中的HANDLE返回?

时间:2014-12-08 17:27:57

标签: c# c++ dll type-conversion

我有一个C ++代码,我想在C#上使用它。其中一个方法返回HANDLE类型,我不知道如何处理它。我的代码就是这个:

[DllImport("CloudMeshDll.dll")]
public static extern HANDLE GethNextColorFrameEvent();

我可以将HANDLE替换为我为Char *(IntPr)或HRESULT(Int32)所做的任何其他类型吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

在Win32 API HANDLE is defined as void*中。现在,除非你使用unsafe,否则C#没有指针类型。因此,处理此问题的标准方法是将HANDLE(和类似类型)映射到IntPtr,因为IntPtr是指针大小的。也就是说,它在32位进程中为32位宽,在64位进程中为64位宽。