0
I 전체 .NET 프레임 워크 솔루션에 다음 코드가 있습니다.NET 컴팩트 COM 상호 운용성
이
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 Compact Framework에서 가능합니까?
Marshal.GetDelegateForFunctionPointer에는 없습니다.
CoCreateInstance()를 직접 P/Invoke하지 않는 이유는 무엇입니까? 또는 형식 라이브러리 및 TlbImp.exe를 사용합니까? –
나는 일반적으로 다른 것을 동적으로로드하려고하지만 일반적인 COM 라이브러리는 많이 갖고 싶습니다. 나는 포기하고 P/Invoke CreateObject를 사용했기 때문에이 함수를 호출하는 라이브러리에 항상 바인딩되어 있습니다. – markhor