110,534
社区成员
发帖
与我相关
我的任务
分享
test::test(byte** src, int fileNum,int Min)
byte*[] result = new byte * [len];
for(){
//.......
fixed (byte* p = &re[0])
{
result[k] = p;
}
}
}
fixed (byte** pData = result)
{
return pData;
}
CTextureCycle(byte* srcFilePixe[], int fileNum, int srcFileWidth, int srcFileHeight, int Min_loop_count)
我该怎么把这个非托管的值传进去 CTextureCycle::CTextureCycle(byte* srcFilePixe[], int fileNum, int srcFileWidth, int srcFileHeight, int Min_loop_count) {
this->srcWidth = srcFileWidth;
this->srcHeight = srcFileHeight;
this->srcLen = srcFileWidth * srcFileHeight * 3;
this->imageNum = fileNum;
this->min_loop_count = Min_loop_count;
int n;
// CImage * myImage;
this->imageArray = new CImage[fileNum];
this->orgFabricArray = new byte*[fileNum];
// cout << fileNum << endl;
byte * currentPointer;
for (int k = 0; k < fileNum; k++)
{
orgFabricArray[k] = new byte[this->srcLen];
this->imageArray[k].Create(srcFileWidth, srcFileHeight, 24);
currentPointer = srcFilePixe[k];
cout << "this->srcLen = " << this->srcLen << endl;
for (int i = 0; i < this->srcLen; i++)
{
//if (IsBadReadPtr(currentPointer, 1)){ currentPointer++; continue;};
orgFabricArray[k][i] = *currentPointer;//release模式下debug不报错,start without debug运行到一半报错
currentPointer++;
// orgFabricArray[k][i] = msg[k][i];
}
n = 0;
for (int i = 0; i < srcFileWidth; i++)
{
for (int j = 0; j < srcFileHeight; j++)
{
this->imageArray[k].SetPixelRGB(i, j, orgFabricArray[k][n], orgFabricArray[k][n + 1], orgFabricArray[k][n + 2]);
n = n + 3;
}
}
}
}
[DllImport("XXX.dll")]
public static extern void CTextureCycle([MarshalAs(UnmanagedType.LPTStr)]out byte[] srcFilePixe, int fileNum, int srcFileWidth, int srcFileHeight, int Min_loop_count);
调用时,第一个参数
byte[] srcFilePixe=...;
不行,请追问
byte[] in_Src = new byte[3] { 123, 5, 255 };
GCHandle in_Src_C = GCHandle.Alloc(in_Src, GCHandleType.Pinned);