c++;使用Hashtable参数调用c#DLL 我试图用CLI调用C++的C++语言,作为链接:

c++;使用Hashtable参数调用c#DLL 我试图用CLI调用C++的C++语言,作为链接:,c#,c++,hashtable,managed,C#,C++,Hashtable,Managed,一切似乎都很好 但是如果C#函数有一个Hashtable参数,我不知道如何调用它。 C#函数如下: public void DoSomething(Hashtable htb,int,string etc) 请帮助我在C++中如何使用这种C++函数。< /P> 致意 约翰< P>如果使用CLR选项,那么C++代码将成为托管代码。所以你可以用 System::Collections::Hashtable 在你的C++代码中使用哈希表尝试失败后,我决定这样解决。 我申报一个班级 Class Wr

一切似乎都很好

但是如果C#函数有一个Hashtable参数,我不知道如何调用它。 C#函数如下:

public void DoSomething(Hashtable htb,int,string etc)
请帮助我在C++中如何使用这种C++函数。< /P> 致意


约翰

< P>如果使用CLR选项,那么C++代码将成为托管代码。所以你可以用

System::Collections::Hashtable

在你的C++代码中使用哈希表

尝试失败后,我决定这样解决。 我申报一个班级

Class WrappedWhateverClass
{
private:
gcroot <CSharpClass ^> _caller;
public:
    gcroot <Hashtable^> htb;
void WrappedWhateverClass()
int DoSomethinginC( int , string, etc);
}

在代码方面发布您已经拥有的内容、您尝试过的内容、不起作用的内容等。映射或无序映射不起作用。当我试图调用
无序映射htb
DoSomething(htb、int、string等)
它发出错误C2664:“void DoSomething(System::Collections::Hashtable^、int、string等)”:无法将参数1从“std::tr1::unordered_map”转换为“System::Collections::Hashtable^”
void WrappedWhateverClass::WrappedWhateverClass()
{
htb = gcnew Hashtable();
}
int WrappedWhateverClass::DoSomethinginC( int i, string str, etc)
{
_caller->DoSomething(htb,i,str, etc);
}