我目前遇到了转换的问题。我有一个C++包装器,可以公开一个函数...
public __gc class InternalModuleConfig : public ModuleConfig
{
Object* InternalModuleConfig::CommitChanges(IModuleConfig* config)
{
VARIANT variant = {0};
m_pModuleConfig = config;
HRESULT hr = m_pModuleConfig->CommitChanges(&variant);
if (FAILED(hr))
{
VariantClear(&variant);
return Marshal::GetObjectForNativeVariant(&variant);
}
return NULL;
};
};
我正在尝试在C#中调用这个函数,但是失败了。我有一个带有以下命名空间的C#接口:
DirectShow.IModuleConfig
现在我正在尝试获取指向我的现有接口的指针,以将其用作C#中CommitChanges变量的变量,但是我总是遇到转换错误。
这是我尝试的基础内容...
InternalModuleConfig config;
config.CommitChanges(ref (filter as IModuleConfig));
这不起作用...我有点困惑如何为参数应用IModuleConfig*类型。
有什么想法吗?
编辑: 这是InternalModuleConfig基于的接口:
public __gc interface ModuleConfig : public IDisposable
{
public:
virtual Object* CommitChanges(IModuleConfig* config) = 0;
IModuleConfig* m_pModuleConfig;
};