I have an IMAQ app written with VS2008 (managed C++, using PInvoke). The 32-bit version works fine. But I want to build a 64-bit version.
I have IMAQ 4.4.0 (March, 2010 release) installed. My framegrabber is a PCIe-1433. I'm running Windows XP Pro x64 on a BOXX Technologies machine.
When I build an x64 version, I get error 0xBFF60150 from imgSetBufferElement (... IMG_BUFF_ADDRESS ...). imgShowError tells me this means "The operation is not supported for 64-bit applications."
Does this error mean I can't make an x64 build with IMAQ under XPx64?
Or does it mean that one of the parameters to imgSetBufferElement (... IMG_BUFF_ADDRESS ...) is incorrect?
Thanks in advance.
Solved! Go to Solution.
If you look at the signature for imgSetBufferElement you'll see that the value paramater is defined as a uInt32. This would not be compatible with a 64-bit application since the pointer is 64 bits wide. If you take a look at the C examples included with your version of IMAQdx you can see how the replacement function imgSetBufferElement2 should be used as a replacement in new code (imgSetBufferElement should now be listed as "obselete" in the header). The new version replaces the old version of the function and is compatible with both 32-bit and 64-bit code. The syntax and parameters passed should be identical.