我正在尝试编写一个包装器,用于包装一个期望函数指针和任意用户数据(
我可以将其变成
void*
)的C函数。我已经通过使用委托处理了函数指针,但我无法想出如何将object
转换为void*
。我可以将其变成
ref object
,因为它的行为类似于指针,但是当我尝试这样做时,我会收到异常,如下所示:
这个“解决方案”可能适合我,但我认为必须有一种方法可以将任意数据传递给C DLL,以便稍后可以将其传回?An invalid VARIANT was detected during a conversion from an unmanaged VARIANT to a managed object. Passing invalid VARIANTs to the CLR can cause unexpected exceptions, corruption or data loss.
fixed
块的结构体指针... - Marc GravellIntPtr
,但当它返回时,我该如何将其转换回object
呢?(还有,如何将一个对象“强制转换”为 IntPtr?) - mpenIntPtr
转换为int
的操作... - mpen