我有一个C++ .DLL和C#应用程序。在DLL我有这样一个功能:从int []转换为int *
namespace Sample { public ref class SampleClass { public: int f(int arr[], int length); }; }
我怎样才能把它从C#应用程序?问题是在C++中,我只能使用int*
参数,并且不能声明int[]
,并且在c#中只能使用int[]
变量。
我曾尝试申报在C#中int*[]
型,但由于
是不可能的不能拿一个管理型
错误的地址。我不知道如何将数组放入此函数。
UPD: 努力的DllImport像
[DllImport("samplelib.fll", EntryPoint = "Sample.SampleClass.f")]
,但似乎是错误的。
为什么你甚至在C++是签名?你怎么知道'arr'中有多少个元素? – crashmstr 2014-08-27 12:14:12
DllImport to ...只需将int和[]导入并签名即可。请参阅MSDN上的示例。 – 2014-08-27 12:14:52
@crashmstr'int f(int arr [])'与C++中的int f(int arr *)'相同。 []语法就在那里混淆。 – juanchopanza 2014-08-27 12:16:33