i am using the nivision library in a cvi project. yesterday i tried to build a distribution kit. strangely, the kit never asked to include the nivision runtime files. after sending the installer to the client, the software does not do what it is supposed to do. so i dig a little bit:
why is the vision library dll NOT listed in the dll dependencies of the build executable ? (using dependency viewer from microsoft or any pe explorer)
then i renamed the nivision.dll in my system folder. contrary to any properly build windows application, my cvi application does not complain at all for a missing dll. i know this is normal, since the dll is NOT listed in the dependencies of the software. now this is very problematic, since the software will still launch without complaining, making it hard to spot a misinstalled computer (or simpler, the client installing the application on the wrong computer). the application seems to run fine, but nothing happens when trying to process an image.
so, i debugged step by step into the code, thinking that i might have missed an error code somewhere, and here is what i found: imaqCreateImage calls DO NEVER RETURN ! no error code returned, not even a message displayed allowing to diagnose the problem. how am i supposed to know something goes wrong if the function does not return ?
finally, when building the distribution kit there is an option to include a "merge module" (*.msm) which (i think) might specify the dependencies. i could not find any "merge module" for the vision library. in fact, the only library which has a merge module on my computer is ivi. now how do i specify the dependency on the vision and acquisition library when building the kit ? is there a way to automatically include the parts ? also how can i upgrade the vision library to a newer version automatically if necessary from my distribution kit, including license installation, without the user having to enter or confirm anything ? (the client do not have to think when installing an upgrade on an industrial machine, everything has to be automatic)
(side question: it seems the problem came from a version mismatched of the vision library between my computer, used to build the executable, and the target computer. i supposed that a vision 8.1 license would also be valid for a vision 8.2 library... where do i know the scope of a license, without going to the client site ?)