We are currently working on a method for getting Maya geometry into our own 3D application called "KeyShot".
We wish to make the import process as easy as possible for our users therefore our users should simply be able to import the content of any .ma or .mb file that is selected from within our 3D application.
In order to read out 3D data from the .ma or .mb file Maya need to be installed on the computer.
No problems so far. Now comes the tricky part.
Our export/import module is an executable which require to dynamically link with some of Maya DLL's such as "FOUNDATION.dll"
If my executable is located in Maya's bin folder then everything works just fine.
However my import application cannot be located in the bin folder of Maya and just copying it into maya's bin folder is not an option as our users may not have the privileges to do so.
When launching my application outside Maya bin folder it is possible to find the required Maya DLL's simply by pointing the "Working Directory" to Maya's bin folder using an argument in the CreateProcessW method.
However once the Maya DLL's have been linked then Windows dynamic linker will link the DLLs used by the Maya DLL's.
One of Maya DLL's uses another DLL called QtGui4.dll
The QtGui4.dll is located next the Maya DLL's, but for some reason a different version of GtGui4.dll is found and used.
I get this error message when launching my import application.
"The procedure entry point ?instanceOperationsCounter@QWidget@@SAHXZ count not be located in the dynamic link library QtGui4.dll"
I have created a small test program that outputs the environment to a text file while the application was located in Maya's bin folder.
I still get the error message above when I use the content of the outputted text file as environment when launching my application using 'CreateProcessW'.
Any ideas anyone? I should use some help here!