我有一個C#程序使用P/Invoke調用現有的C圖像庫DLL。調用Native方法時的最大緩衝區大小
是否有可能緩衝區的大小是有限的,可以有效地編組?
我打電話的功能,我傳遞一個指向INPUTBUFFER,它的大小和OutputBuffer中是這樣的:
cmsDoTransform(xform, inputBitmapBytesRGB, outputBitmapBytesCMYK, TotalPixels);
雖然這段代碼嘗試,我不停地接收MemoryAccessViolation錯誤?
因此,我開始使用尺寸爲1x1像素,2x2,4x4,8x8,16x16高達64x64的非常小的RGB圖像,並且一切正常,突然間,沒有更多的錯誤消息。不能更快樂。
有信心,我回到了原來的364x288像素RGB測試圖像。那沒有用?返回MemoryAccessViolations?
因此,我將圖像大小從364x288縮小到288x288,直到它以128x128「通過」,最終導致圖像大小爲49,512字節。
因此,上述函數調用中的TotalPixels參數變成了128x128或16,384。它似乎是關於.NET編組將作爲緩衝區大小接受的「最大」數量?那有意義嗎?
在.NET中,有沒有一個上限,我不能在我正在做的卑微的圖像處理中進行上述操作?
確保byte []的索引是ulong而不是整數。 – jdweng