我在完整的.NET框架解决方案中有以下代码:
public delegate int CreateObjectDelegate(
[In] ref Guid classID,
[In] ref Guid interfaceID,
[MarshalAs(UnmanagedType.Interface)] out object outObject);
...
var createObject = (NativeMethods.CreateObjectDelegate)
Marshal.GetDelegateForFunctionPointer(
NativeMethods.GetProcAddress(_modulePtr, "CreateObject"),
typeof (NativeMethods.CreateObjectDelegate));
object result;
Guid interfaceId = _guid;
Guid classID = _classId;
createObject(ref classID, ref interfaceId, out result);
目的是在运行时创建所需的COM对象。是否可以使用任何.NET压缩框架?
请注意,它没有Marshal.GetDelegateForFunctionPointer。
答案 0 :(得分:1)
对于任何(绝对愚蠢的)原因,CF不包括Marshal.GetDelegateForFunctionPointer。多年来我一直在问团队。根本无法获取函数指针并在CF中调用它。