05-13-2011 10:30 AM - edited 05-13-2011 10:34 AM
I currently have a 32-bit application that was developed in LabWindows\CVI 8.5 that interfaces with a video card. The 32-bit drivers for the video card were installed and imported into LabWindows. The video display control was added to the .UIR as an ActiveX control and displayed video when connected to the video card.
I would like to convert this 32-bit application to a 64-bit application using LabWindows\CVI 2010 (LabWindows\CVI 2010 is Installed as a 32-bit application C:\Program Files (x86)\National Instruments\...\cvi.exe). I downloaded the latest 64-bit drivers for the video card and generated the corresponding .h, .c, and .fp files using the ActiveX Controller Wizard in LabWindows\CVI 2010. However, I am unable to add the video display control (ActiveX) to the LabWindows .uir panel.
The controls corresponding to the video card do not appear in the "Select ActiveX Object" screen in LabWindows. How come the controls do not appear in this screen, but the control appeared when I used the ActiveX Controller Wizard to generate the .fp, .h, and .c files?
Note: I registered the 64-bit .ocx files using the 64-bit regsvr32 in C:\windows\system32.
05-16-2011 12:04 PM
I am not yet sure why this is happening. I will continue to look into it. In the mean time, I would like you to go over some information about porting to 64 bit applications in CVI. There may be some information that helps you see if the problem is related to some known changes that need to be addressed. Porting Considerations, and Updates for 64 bit.
Let me know if something in the changes solves you problem. I will keep looking into reasons also.
05-18-2011 07:58 AM - edited 05-18-2011 07:59 AM
Thanks for looking into this issue. I read the documentation that you provided, but still do not know why this is happening.
When I build my 64-bit application, I receive the following warnings:
Do these missing librarys have anything to do with why I cannot add GUI controls for my ActiveX Controller?
I also noticed the following:
When I create my ActiveX Controller on my 32-bit machine using the old 32-bit drivers, I see the three controls listed as 'top level objects' in the ActiveX Controller Advanced Options menu. When I create my ActiveX Controller on my 64-bit machine using the new 64-bit drivers, these controls are still listed. However, there is one difference that I noticed: When generating the 64-bit ActiveX Controller using the 64-bit drivers, the following menu on the Configuration screen is dimmed:
This screen is enabled when generating ActiveX Controller on 32-bit machine with 32-bit drivers, but dimmed when generating ActiveX Controller on 64-bit machine with 64-bit drivers.
05-20-2011 12:27 PM
I have a couple questions for you.
Are you sure that the regsrv32 is 64 bit? It seems like anything 64 bit would not have a 32 at the end of it.
Are you using the validate server checkbox? Because that would filter out the unregistered servers.
Have you tried using the create from file option? This might bypass it not showing up in the list.
Also R&D thinks the problem may be that CVI is a 32 bit application. You can develop for 64-bit platforms, but the environment itself is still 32-bit. Since the activeX server is hosted in the CVI run-time engine, it cannot host the 64-bit server. They are going to look into this.
05-23-2011 06:57 AM
Yes the regsvr32 that I used is for 64-bit. I used the regsvr32 located in the C:\Windows\System32 directory for 64-bit. The 32-bit regsvr32 is located in the C:\Windows\SysWOW64 directory
Checking and unchecking the validate server checkbox did not show the ActiveX server.
I contacted the vendor who developed the ActiveX .ocx file for their videocard. They updated the .ocx file, and now I can add the ActiveX control to a .uir. It worked correctly with the 64-bit application that I created in LabWindows.
You mentioned that the environment itself is 32-bit and the activex server is hosted in the CVI run-time engine. Does this mean that I will encounter problems using the 64-bit ActiveX controller?
05-24-2011 05:51 PM
You may I haven't heard a definative answer yet, and I am not sure how extensively it has been tested, but my assumptions is there are going to be some corner case issues that creep in when trying to do this, and it could get relatively tricky.
06-02-2011 04:14 PM
Jensen,
I believe I may have encountered one of the corner cases that you described. Please see my latest issue: http://forums.ni.com/t5/LabWindows-CVI/MSVCR80-dll-causes-quot-A-non-debuggable-thread-caused-Genera...
Do you believe that the new issue is related to the one described in this thread?
06-03-2011 04:35 PM
Hi softengr,
It doesn't seem to me like the two issues are related. Hopefully the crash dump will give a better indication of what is causing the problem.
Regards,
Brandon V.
Applications Engineering
National Instruments