Andy,
Certainly, a C based driver is probably the most portable approach. However, you can actually export a set of LabVIEW (G-based) VIs as a DLL. That is certainly portable enough to call from VB, C, C++, etc.
So you have some options:
1. Develop a G-based driver
2. Develop a C-based driver using IVI-C
3. Develop a C-based driver without using IVI
IVI-C drivers have more than just interchangeability. They include features such as simulation, state caching, range checking, and coercion recording. NI's IVI development tools and architecture will give you a good starting point, as well as built-in mechanisms for configuration and attribute handling. While these features can be very beneficial, you should honestly evaluate your or your customer's needs
for them. If they matter, you should develop an IVI-C driver.
However, if all you need is a simple way to control your hardware, then writing a LabVIEW native or a non-IVI C-based driver are both better options. You should choose from them the language you are more comfortable programming with and with which your hardware will be most effective.
Regardless of what you choose, you should check out the
Development Tools website. Finally, you should seriously consider submitting your driver to IDNet. Not only will we be able to help distribute your driver to a wide audience, but we can review its structure and design for our driver development standards.
--Bankim
Bankim Tejani
National Instruments
Instrument Drivers/IVI