1
我需要在C#中調用C++中的以下(DirectShow相關)COM接口。C#COM接口繼承
我在C#中聲明如下,但是當調用IFoo.Foo()時,它與Access Violation一起崩潰。工作正常與IBar.Bar()被稱爲雖然。在C#中編寫等價接口的正確方法是什麼?
[ComImport, Guid("...)]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[SuppressUnmanagedCodeSecurity]
public interface IBar
{
[PreserveSig] int Bar(); // Calling this is OK
}
[ComImport, Guid("...)]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[SuppressUnmanagedCodeSecurity]
public interface IFoo : IBar
{
[PreserveSig] int Foo(); // Calling this crashes
}
的虛函數表必須是對C++對繼承COM接口在C#不相容。有沒有辦法告訴C#遵守C++聲明?