Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

Where are language interface files of GPIB?

Hi all,

 

I installed NI-488.2M VER 2.6 on my Windows Vista x64 machine.  But the language interface files (such as ni488.h, gpib-32.lib, gpib-32.obj, etc,,,) are not found on my HDD.  Not found are both 64bit and 32bit libraries on ProgramFiles and ProgramFiles(x86) directories.  Of course I did the double-check for the SETUP option but C++/VB/.NET language interfaces were surely enabled.

 

Also what is strange is the 64bit version of GPIB-32.DLL (or correctly GPIB-64.DLL?) module for use with 64bit native applications is not found on Windows/System32.  (The 32bit version of GPIB-32.DLL was correctly placed on Windows/SysWow64 though...) 

 

Additional info is, NI-MAX (probably a 32bit process) works fine with GPIB instruments, but its 64bit version looks like absent.

 

Is it the SETUP problem? Or just my file-search is bad?  What I want to do is build C++ native x64 programs for accessing GPIB 64bit interfaces.

 

Thanks and best regards,

Makoto 

 

このメッセージは  02-10-2009 06:43 PM
に Makoto が編集しています。
0 Kudos
Message 1 of 7
(6,858 Views)

Hi Makoto,

 

Starting with NI-488.2 for Windows, Version 2.5.2, the language interface files were moved. And with Version 2.6, they are more easily accessed from the Start menu. To access the header and object files:

 

1. Access the examples through Start->Programs->National Instruments->NI-488.2->Examples

2. Manually navigate to the folder. Below is a snippet from the Readme file about where the files were moved to:

 

The Language Interface and example files have moved from the Program Files\National Instruments\NI-488.2\Languages directory to the Users\Public\Documents\National Instruments\NI-488.2\Languages directory on Windows Vista and the Documents and Settings\All Users\Documents\National Instruments\NI-488.2\Languages directory on Windows XP/2000.

 

And with NI-488.2 for Windows, Version 2.6, support for 64-bit applications was added to allow users to create 64-bit applications on Windows Vista x64 (64 bit) using ni4882.obj. For more information about using the NI-488.2 API, you can search on NI4882 in the online help. The help contains topics such as Choosing a Method to Access the NI-488.2 API and Differences Between the GPIB32 API and NI4882 API.

 

Hope this information helps!

 

gpibtester

Message 2 of 7
(6,848 Views)

Thanks for the reply.

 

I have found the C language interfaces at the following directory for both x86 and x64 build.

C:\Program Files (x86)\National Instruments\Shared\ExternalCompilerSupport\C

 

But the x64 GPIB DLL (Windows/System32/GPIB-32.DLL) is still not found on my Windows Vista x64. For example, the C exmaple "Dll4882Query.c", can be built but it generates "Unable to correctly access the 32-bit GPIB DLL".  I believe the the message shows an access error to 64bit "GPIB-32.DLL". Actually none of GPIB*.DLL files are found in the System32 directory.  Where is the 64bit DLL?

このメッセージは  02-12-2009 02:50 PM
に Makoto が編集しています。
0 Kudos
Message 3 of 7
(6,822 Views)

It looke like that the System32 directory only has 64bit NI4882.DLL, where as the SysWow64 directory has both 32bit GPIB-32.DLL and 32bit NI4882.DLL. So does it mean x64 native GPIB environment no longer provide 64bit GPIB-32.DLL?

 

Plus, the Dll4882Query.c sample which depends on the legacy GPIB-32.DLL, does not work as x64 build.  Is it right?

 

regards,

Makoto

0 Kudos
Message 4 of 7
(6,817 Views)

Hi Makoto,

 

The Dll4882Query.c example uses Direct Entry to access the GPIB-32.DLL (old style API). So that is why you get a compiler error when you try to compile it as a 64-bit application.

 

NI-488.2 for Windows, Version 2.6, does indeed add support to create and compile 64-bit applications. To use new NI4882 API with either 32-bit or 64-bit applications, you must link in either the 32-bit or 64-bit NI4882.OBJ. In other words, to do 64-bit applications, you must link in the 64-bit NI4882.OBJ file. Direct Entry, as used by the Dll4882Query.c, is not allowed with the NI4882.DLL.

 

At the same level as the directory for the Direct Entry examples, there should be a folder called Standard C. In that folder are about a dozen example programs. The Readme files included with each example show how to compile a 64-bit application that links in with the 64-bit NI4882.OBJ file using Microsoft Visual C++, Version 8.0 or higher.

 

Hope that answers all your questions and that the information is useful to you!

 

gpibtester

Message 5 of 7
(6,807 Views)

hello gpibtester,

 

Thank you for the detail explanation. Now I understand that I shall build x64 native GPIB program linking with NI4882.OBJ.  As for legacy x86 programs, I think I still build with linking GPIB-32.OBJ for keeping backward compatibility.  And now I have one more question about 32bit DLL.

 

The 32bit DLL has been traditionally GPIB-32.DLL and it is still provided by the latest NI-488.2M package.  And the latest VER2.6 also provides 32bit NI4882.DLL.  But some old (but recent versions of) NI-488.2M package comes with NI488.DLL (not NI4882.DLL).  In contrast the latest version does not provide NI488.DLL.  What is difference between NI488.DLL and NI4882.DLL? And what NI-488.2M package version comes with NI488.DLL or NI4882.DLL?

 

Thanks and best regards,

Makoto

 

 

0 Kudos
Message 6 of 7
(6,785 Views)

Hi Makoto,

 

The NI488.DLL was installed with version 2.5.2., while it only had support for 32-bit applications, it started to lay down the framework for adding 64-bit support later. Support for 64-bit applications came with version 2.6 with the NI4882.DLL. The name change from NI488.DLL to NI4882.DLL was simply to add consistent naming across all the supported platforms.

 

If a 32-bit application is compiled with the NI4882 API, it will still work on a system that does not have NI488x.DLL installed as it falls back to using GPIB-32.DLL.

 

If a 64-bit application is compiled with NI4882 API, it will only work on a Vista 64-bit system with version 2.6 or later installed.

 

Hope this answers the questions about GPIB-32.DLL, NI488.DLL, and NI4882.DLL.

 

gpibtester

0 Kudos
Message 7 of 7
(6,768 Views)