0

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

此致

约翰

4

2 回答 2

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);
}
于 2013-07-17T09:12:39.873 回答
0

如果您使用 CLR 选项,那么您的 c++ 代码将成为托管代码。所以你可以使用

System::Collections::Hashtable

在你的 C++ 代码中使用 Hashtable

于 2013-07-16T13:28:59.153 回答