我正在尝试使用CLI从C ++调用C#DLL作为此链接:http://tom-shelton.net/index.php/2008/11/01/calling-managed-code-from-a-dll-created-in-visual-c-2008/
一切似乎都很好。
但是如果C#函数有一个Hashtable参数,我不知道如何调用它。 C#函数是这样的:
public void DoSomething(Hashtable htb,int,string etc)
请帮我看看如何在C ++中使用这种C#函数。
祝你好运
约翰
答案 0 :(得分:1)
尝试了一些失败的时候,我决定这样解决 我宣布了一个班级
Class WrappedWhateverClass
{
private:
gcroot <CSharpClass ^> _caller;
public:
gcroot <Hashtable^> htb;
void WrappedWhateverClass()
int DoSomethinginC( int , string, etc);
}
在代码中,我调用C#DoSomething函数:
void WrappedWhateverClass::WrappedWhateverClass()
{
htb = gcnew Hashtable();
}
int WrappedWhateverClass::DoSomethinginC( int i, string str, etc)
{
_caller->DoSomething(htb,i,str, etc);
}
答案 1 :(得分:0)
如果使用CLR选项,那么您的c ++代码将成为托管代码。所以你可以使用
System::Collections::Hashtable
在你的c ++代码中使用Hashtable