LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

64-bit ActiveX Control to .uir?

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. 

0 Kudos
Message 1 of 8
(4,277 Views)

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.

Jensen
National Instruments
Applications Engineer
0 Kudos
Message 2 of 8
(4,253 Views)

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:

  1. Cannot find 64-bit program file for library 'VXI Library'.
  2. Cannot find 64-bit program file for library '.NET Library'.

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:

 

ActiveX Controller Wizard 

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.

 

 

0 Kudos
Message 3 of 8
(4,236 Views)

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.

Jensen
National Instruments
Applications Engineer
0 Kudos
Message 4 of 8
(4,218 Views)

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?

 

0 Kudos
Message 5 of 8
(4,207 Views)

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.

Jensen
National Instruments
Applications Engineer
0 Kudos
Message 6 of 8
(4,194 Views)

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?

0 Kudos
Message 7 of 8
(4,177 Views)

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

www.ni.com/support

 

 

0 Kudos
Message 8 of 8
(4,169 Views)