06-19-2011 10:28 PM
@SripadRam wrote:
Hello,
I am having exactly the same problem where I am trying to run my code that uses the 32 bit IMAQ driver on a 64 bit OS (Window 7). In my code, I am already using the imgCreateBuffer and imgDisposeBuffer functions. However, I still get the same error ("This 32-bit device is operating on a 64-bit OS with more than 3GB of physical memory....")..
.
I would like to try using the "niimaquDisable32bitPhysMemLimitEnforcement" private function, and I have a question.
The syntax for this function is niimaquDisable32bitPhysMemLimitEnforcement(SESSION_ID,boardid). Can someone tell me what is the boardid? Is it the same as the interface id?
One of the replies also referred to the use of the PCI format of the frame-grabber board (NI-1422), which is what I am currently using to interface with my camera. In this regard, would it be advisable to update to PCI express format?
Thanks!
Sri
I believe it takes one parameter, which is the session id from imgSessionOpen. I'm hoping we can make this call to niimaquDisable32bitPhysMemLimitEnforcement unnecessary in the future and things will "just work" as long as you use the imgCreateBuffer/DisposeBuffer functions.
As for upgrading to a PCIe card, there is not currently a PCIe version of this card available.
Eric
02-11-2012 10:58 AM
Hello. I have question about the
error LNK2001: unresolved external symbol __imp_niimaquDisable32bitPhysMemLimitEnforcement.
I defined
USER_FUNC niimaquDisable32bitPhysMemLimitEnforcement(SESSION_ID Sid);.
I used
niimaquDisable32bitPhysMemLimitEnforcement(Sid); in main function.
And I tried to compile c++ file, but I got this error message.
I already add imaq.lib and h file.
Please let me know how to fix this problem.
Thanks for your help.
02-13-2012 03:42 PM
Hello Ity52,
Are you running this program on a 64-bit Windows operating system?
Also, can you please send some screen shots of where you define the USER_FUNCniimaquDisable32bitPhysMemLimitEnforcement(SESSION_ID Sid); so we can see the code you have around it and also of where you call the niimaquDisable32bitPhysMemLimitEnforcement(Sid); in the main function?
This will help us see how you are calling them and where this error is coming from.
Thanks!
Mychal F.
04-03-2012 01:13 PM
Hi, I am having the same issue with a NI-1411 frame grabber. I am using Matlab to call the IMAQ activeX control to grab images. Is there a way to achieve this workaround with IMAQ activeX control (e.g. niimaquDisable32bitPhysMemLimitEnforcement())? I can not find a similar function in the "cwimaq.chm" help file. Any suggestions are highly appreciated. Thanks.
jji686
04-04-2012 11:04 AM
Hi jji686,
Just to clarify, you are trying to call the IMAQ Memory Disable call in MATLAB, is this correct? If so, you will probably have to contact them to get the correct call. If this isn't correct, can you please let me know what environment you are working in (where you are trying to make this call)? Thank you!
Mychal F.
04-06-2012 12:37 PM
Hi, Mychal F, Thanks for the answers. Yes, I am using Matlab environment. I am using the IMAQ activeX control to interact with NI frame grabber. Since I am not calling the C++ DLL to interact with NI frame grabber, I just want to know if there is a way to achieve the same effect as C++ function call : niimaquDisable32bitPhysMemLimitEnforcement() in IMAQ activeX control? The activeX help file name is "cwimaq.chm" if that help you to trace down what activeX I am using. Here is my code to create activeX in matlab:
imaqfig = figure(99);
IMAQ = actxcontrol('CWIMAQControlsLib.CWIMAQ.1',[20 20 60 60],imaqfig);
IMAQ.Interface='img0';
IMAQ.LoadInterfaceDefaults;
thanks.
jji686
04-09-2012 05:30 PM
Hi jji686,
I am not aware of any IMAQ ActiveX control that will do this same function. I have been looking into things here and have not been able to find any type of command that will allow you to do this. So for right now, my answer is no, there is no call that will achieve the same results as the niimaquDisable32bitPhysMemLimitEnforcement(). However, I am still looking and will give you a definite answer as soon as I can. Thank you for your patience!
Mychal F.
04-10-2012 01:44 PM
Hi jji686,
Unfortunately my first answer was correct. There is no way to disable the 32-bit memory enforcement through the CWIMAQ component. The only way to disable it is through the C API. Sorry I don't have better news for you!
Mychal F.