delavega Posted November 8, 2008 Report Share Posted November 8, 2008 Hello Everybody, I´m sorry by my English. I´m new in LabVIEW and I would like to make a Stand-alone application. I have an application which is doing call to functions of the .dll. I tested it other times but suddenly the problem appears when I uninstall visual studio 2008. I enclose a image with my problem. The translation is: It´s imposible to start the application because your setting is wrong. Reinstalling the application may resolve the problem. Why does it happen? Can anybody help to resolve the problem?? Thank you!! Regards Quote Link to comment
Mark Smith Posted November 8, 2008 Report Share Posted November 8, 2008 That's one of those really useful Windows error messages! My guess is that your dll is linked to the debug versions of some DLL - likely something like the msvcrtd.dll (the Microsoft C++ Runtime Library (debug version)) which gets loaded with VS but not with a standard Windows install - Windows will install the msvcrt.dll (doesn't include any debug info) but not the debug version. So, if your dll was built with the dynamic calls (http://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx) into the debug library and the VS uninstall removed them, it won't run and you get the helpful error message. If possible, build your DLL with the /MD compiler option instead of the /MDd and this problem may be solved. If you can't recompile the dll (maybe it's not one you wrote) then use Dependency Walker http://www.dependencywalker.com/ to find which dll is missing that your dll is trying to call and find a copy of that dll and copy it to wherever your dll is looking for it. Mark Quote Link to comment
delavega Posted November 12, 2008 Author Report Share Posted November 12, 2008 Hi, I found the file which was missing, but I don´t Know what I´m doing wrong, since I´m receiving the same error message. I have included the file in my stand-alone application as you can see in the enclosed image. Then I installed the application. I also copied the files in the folder where they the application is supposed to look for. This resulted in the same error-message. Do you need all the steps I followed in order to compile the application? Thank u in advance Quote Link to comment
Mark Smith Posted November 12, 2008 Report Share Posted November 12, 2008 OK, now this is getting complicated - probably beyond my ability to help! I assume that when you looked at the dependencies of the DLL in question, it pointed to the folder in your \WINDOWS\SxS directory (that's the Windows Side-by-side directory). I'm not very familiar with that but a little quick reading indicates that it's a place that COM DLLs can live "side-by-side". Evidently, XP and Vista can use "Registration-Free COM" activation and when this happens COM DLLs get installed in the SxS directory, along with a manifest and a "security catalog". This means that the COM object doesn't get entered into the system registry - rather, at run time the calling application (the EXE) now must reference a manifest file (typically in the calling EXE's directory, as far as I can tell) that contains information about how to load files from the SxS directory. Since you had a system that worked when VS 2008 was installed, the manifest information must have been somewhere in the 2008 hierarchy or if you built the dlls yourself they were likely created when the dll was compiled and linked - if possible, go back to your VS2008 development machine and see if you have any *.manifest files created when you created the dlls. Without the manifest files, your dll can't link to the ms runtime library dlls because they aren't registered in the system registry and there's no information about which SxS files should get loaded. Please note that all of this is pure speculation Here are some links that provide more (a lot more) information http://msdn.microsoft.com/en-us/library/ms973913.aspx http://msdn.microsoft.com/en-us/magazine/cc188708.aspx Maybe someone here really understands this stuff and can help. Mark Quote Link to comment
Rolf Kalbermatter Posted November 26, 2008 Report Share Posted November 26, 2008 QUOTE (mesmith @ Nov 11 2008, 02:43 PM) OK, now this is getting complicated - probably beyond my ability to help! I assume that when you looked at the dependencies of the DLL in question, it pointed to the folder in your \WINDOWS\SxS directory (that's the Windows Side-by-side directory). I'm not very familiar with that but a little quick reading indicates that it's a place that COM DLLs can live "side-by-side". Evidently, XP and Vista can use "Registration-Free COM" activation and when this happens COM DLLs get installed in the SxS directory, along with a manifest and a "security catalog". This means that the COM object doesn't get entered into the system registry - rather, at run time the calling application (the EXE) now must reference a manifest file (typically in the calling EXE's directory, as far as I can tell) that contains information about how to load files from the SxS directory. Since you had a system that worked when VS 2008 was installed, the manifest information must have been somewhere in the 2008 hierarchy or if you built the dlls yourself they were likely created when the dll was compiled and linked - if possible, go back to your VS2008 development machine and see if you have any *.manifest files created when you created the dlls. Without the manifest files, your dll can't link to the ms runtime library dlls because they aren't registered in the system registry and there's no information about which SxS files should get loaded. Please note that all of this is pure speculation Here are some links that provide more (a lot more) information http://msdn.microsoft.com/en-us/library/ms973913.aspx http://msdn.microsoft.com/en-us/magazine/cc188708.aspx Maybe someone here really understands this stuff and can help. Mark Additionally there is the possibility that msvcrtd.dll or one of its versioned siblings msvcrXXd.dll relies on yet other DLLs that are in debug versions and get installed with MSVC only. Rolf Kalbermatter Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.