我现在需要在C#中调用参数是二维数组的dll,而且穿进去的实参将在dll中分配内存,dll代码如下:
extern "C" __declspec(dllexport) int fun(int **x , int *rows , int *cols)
{
x = new int* [10];
for(int k = 0;k < 10;k++)
x[k] = new int[10];
for(int i = 0;i<10;i++)
for(int j = 0;j<10;j++)
x[i][j] = 1; *rows = 10;
*cols = 10; return 1;
}
请问在C#中如何能正确传递这种类型的参数阿?
注意,分配内存和赋值都是在dll中作的,这才是重点!!!!!!!!!!!!!!!!
多谢高手们啊!!!!
extern "C" __declspec(dllexport) int fun(int **x , int *rows , int *cols)
{
x = new int* [10];
for(int k = 0;k < 10;k++)
x[k] = new int[10];
for(int i = 0;i<10;i++)
for(int j = 0;j<10;j++)
x[i][j] = 1; *rows = 10;
*cols = 10; return 1;
}
请问在C#中如何能正确传递这种类型的参数阿?
注意,分配内存和赋值都是在dll中作的,这才是重点!!!!!!!!!!!!!!!!
多谢高手们啊!!!!
但有一点的就是你编成dll应该是不能用委托的。
你需要的是在dll中分配内存和赋值,使用值传递,参数的副本会复制到dll中分配的形参的内存地址中
赋值当然也在其中。
不对就请见谅,学习中!!!