c ++使用Hashtable参数调用c#DLL

时间:2013-07-16 12:07:56

标签: c# c++ hashtable managed

我正在尝试使用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#函数。

祝你好运

约翰

2 个答案:

答案 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