helo 我知道这可能很简单,但请相信我,我没有从我在google上发现的内容中读到它。 我尝试做如下因素的事情:将类类型对象转换为Intptr
unsafe static IntPtr __convertSearcherCallbackParameterToIntPtr (SearcherCallbackParameter searcherCallbackParameter) { return (*(IntPtr*)&searcherCallbackParameter); }
其中SearcherCallbackParameter是一类,我需要将其转换为一个IntPtr这样我就可以把它作为一个参数,一个Windows API。
我得到如下因素的错误: 不能走的地址,获取的大小,或指针声明到托管型
CLR保留将您在内存中移动的权利,因此即使您可以获取托管对象的地址,该地址几乎肯定会非常快地失效。你介意说明你正在尝试使用哪个API调用? – Jimmy 2011-02-26 08:27:53
我想你EnumWindows和EnumChildWindows,我需要发送一个指针(或IntPtr)SearcherCallbackParameter。所以我的回调可以接收它。 – hgfhnfg 2011-02-26 08:30:42
野兔是我声明的fcts:private delegate bool EnumWindowsProc(IntPtr hWnd,IntPtr lParam); [DllImport(“user32.dll”,CharSet = CharSet.Auto,SetLastError = true)] private static extern bool EnumWindows(EnumWindowsProc callback,IntPtr extraData); – hgfhnfg 2011-02-26 08:31:55