03-06-2009 03:40 AM
Hello
I have a TestStand step which acquires an image and creates a bitmap object with the 'NewBitmap' function. I get a bitmap ID which I send to TestStand. This function is included in a dll called acquisition.dll. In my TestStand sequence, I post the bitmap ID in a message to the UI. My callback in the UI get the ID and display the image with the 'CanvasDrawImage' function. The name of the file is UI.exe. So, my bitmap ID get through the different files below :
acquisition.dll -> TestStand sequence file -> UI.exe
My problem is that it works well on one PC (I get the picture on the UI), but not on another one. the 'CanvasDrawImage' function returns an error -12, out of memory. I precise that I use the same exe and dll files, I dont compile files on each PC.
So the the question is why is the result different from on PC to another one. Is the method I use ok ?
Regards
Laurent
03-06-2009 09:06 AM
03-09-2009 05:28 AM
I'm using TestStand 3.5 and LabWindows/CVI 8.1. I tested my program on the different PC
Laurent
03-12-2009 02:47 AM
Hello,
Can you try to compile the file in the other computer?
Regards,
Nacer M. | Certified LabVIEW Architecte
03-12-2009 03:08 AM
Yes, I compiled the files (dll and ui) successfully on both PC
Laurent
03-12-2009 04:44 AM
Hello,
After compiling int the other computer di you have the error?
Regards,
Nacer M. | Certified LabVIEW Architecte
03-12-2009 12:07 PM
If you are dealing with large images, the error message might be correct that you are out of memory. You can run out of memory when requesting a large block if memory is fragmented, even if you have enough total memory. If it is a borderline case, subtle software differences or usage difference between two computers could result in differing fragmentation where the allocation succeeds on one but not the other.
Can you reduce the size of the bitmap or any other large allocations?