求助:vb.net二维数组如何转为C++/CLI二维数组?
描述:一维及多维数组的内置类型(如int)转换到CLI没有问题,可是给Point类型数组转换就成问题...
vb.net
Dim vs(3,3) As System.Drawing.Point
For i As SByte = 0 To 3
For ic As SByte = 0 To 3
vs(i, ic).X = i + 10
vs(i, ic).Y = CInt(Rnd() * 100)
'X,Y应用于Chart控件的点阵数组
lanChart.Series(ic).Points.AddXY(vs(i, ic).X, vs(i, ic).Y)
Next
Next
注意:不需要C/C++非托管原生代码,只要CLI托管类数组..
谢谢
可能上面我的问题没描述清楚,数组间转换我是知道怎么转换的,但我面临真正的问题在于Point数组:vb.net中能正确运行得很好,而对应C++/CLI代码如下://CLR编译
int i,ic;
Random^ rnd = gcnew Random;
int ivs = rnd->Next(100);
array<System::Drawing::Point^, 2>^ vs = gcnew array<System::Drawing::Point^, 2>(4, 4);
for (i = 0; i <4; i++) {
for (ic = 0; ic <4; ic++) {
vs[i,ic]->X = i + 10;
vs[i,ic]->Y =ivs;
lanChart->Series[ic]->Points->AddXY(vs[i, ic]->X, vs[i, ic]->Y);
}
}
我的根本问题就是C++/CLI能在Release下编译通过,却无法正确运行这段代码,数组传达后赋值就出现溢出异常……C++/CLI编译器的漏洞?我的代码错了吗??求指点
可能我的描述不够清楚,请再看看我问题补充,