- NSIS Discussion
- DLL error stopping installer run
Archive: DLL error stopping installer run
Afrow UK
19th September 2003 21:57 UTC
DLL error stopping installer run
"This application has failed to start because CRTDLL.DLL was not found. Re-installing the application may fix this problem."
This is what one of my user's is getting.
What is the problem, and how is it fixed?
Is this a Windows 95 issue?
-Stu
psyke
20th September 2003 05:25 UTC
Have you asked the user to search their system for crtdll.dll?
Maybe whatever you're running needs this .dll - that's what the error message indicates anyway, though they're not always accurate.
The .dll seems to come even with early versions of win95... you can get some more info here:
http://support.microsoft.com/default...on/dllinfo.asp
Afrow UK
20th September 2003 10:47 UTC
I knew it was Windows95 problem (even though I didn't know that he ran Windows95)
I seem to remember from an older topic that it comes with InternetExplorer I think...
I'll look into it.
-Stu
kichik
20th September 2003 11:20 UTC
It means a DLL you're trying to register or an application you're trying to execute is missing CRTDLL.DLL and can't load without it. You can use Dependency Walker to find out which one it is.
Afrow UK
20th September 2003 11:48 UTC
Ah ok, well the only other things being used are InstallOptions, 7-zip (command line), Banner, and Brainsucker's NotifyIcon plugin.
-Stu
kichik
20th September 2003 11:52 UTC
7-zip requires CRT.
Actually, it requires MSVCRT.dll, not CRTDLL.dll. Try using 7za.exe instead of 7zan.exe. The former doesn't require MSVCRT.dll.
Joost Verburg
20th September 2003 11:55 UTC
You can also compile a static 7-zip version.
Afrow UK
20th September 2003 14:17 UTC
I'm using 7za.exe
-Stu
Afrow UK
20th September 2003 14:49 UTC
I've just grabbed the latest 7za, but I need to wait till makensis with 8192 NSIS_MAX_STRLEN is available before I can re-compile my installer (I'm running latest CVS with latest features, but my installer only works properly with extended string length).
-Stu
Joost Verburg
20th September 2003 15:05 UTC
7za does not require this DLL, so it should be another application you are using.
For the compiler, see http://winprog.org/tutorial/msvc.html
Afrow UK
20th September 2003 15:23 UTC
Thanks for that.
I will ask the user exactly when it happens.
-Stu
Afrow UK
21st September 2003 17:59 UTC
My user says he is running Windows XP.
My installer was using an old 7za.exe, so I have downloaded the new version, and hopefully it will be fixed now.
I'm really unhappy that the latest (February) Microsoft Core SDK has had the VS6 compiler removed, which has stopped me from compiling makensis myself.
I just need a recompile of makensis with the 8129 NSIS_MAX_STRLEN set.
-Stu :eek:
Joost Verburg
21st September 2003 18:05 UTC
Why not use the .NET SDK?
kichik
21st September 2003 18:13 UTC
The core SDK doesn't contain any compiler (besides the 64-bit compiler it seems), just header files, examples and libraries. It's the .NET SDK that should contain the compiler.
Afrow UK
22nd September 2003 19:08 UTC
I do have the .NET SDK, but the tutorial said that the .NET SDK doesn't come with any C/C++ compilers, but the Core SDK does.
I'll have a good look for it, but it's not called CL.EXE.
Edit: windows\microsoft.net\..\CSC.EXE seems to be the C compiler.
-Stu
Afrow UK
22nd September 2003 19:19 UTC
Now, trying to compile any of the nsis source brings up tonnes of compile errors.
Is this because the compiler is .net syntax specific?
-Stu
kichik
22nd September 2003 19:24 UTC
CSC sounds like C# compiler. C# and C/C++ are not the same language, I doubt that compiler will work. According to that page we directed you at there should be a C compiler there. Are you sure you have installed it all? Were there any options to check/uncheck during installation?
Microsoft has quietly released it's command line compiler and linker tools as part of the .NET Framework SDK. The Framework SDK comes with everything you need to for .NET development (C# compiler etc...) including the command line compiler cl.exe which, while it's intended for use with the .NET framework, is the same compiler that comes with Visual C++ Standard.
Afrow UK
22nd September 2003 19:57 UTC
There is a cl.exe with the Core SDK, but is for 64-bit programs.
The .NET SDK doesn't have a cl.exe.
I don't recal having any options to choose from on the .NET SDK installer.
It just did a small check and then installed.
-Stu
kichik
22nd September 2003 20:01 UTC
I'll try to get a computer to check it on soon. According to that page it should be there, maybe you can try going to that #winprog IRC channel and ask. They wrote the page, they should know, heh :)
Joost Verburg
22nd September 2003 20:21 UTC
The .NET SDK should include a compiler, not the Core SDK (that one contains libs/headers).
Afrow UK
22nd September 2003 20:32 UTC
I'm going to extremes now, and searching my whole hard drive for cl.exe!
-Stu :o :)
Afrow UK
22nd September 2003 20:39 UTC
Success, well, sort of...
I found the proper C++ compiler: C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe
However, it won't run!!
"This application has failed to start because mspdb71.dll was not found. Re-installing this..."
I'll attempt to re-install the .NET SDK afterk school tomorrow.
Thanks for the help too!!
Oh, BTW, I've just finished a whole D-Day command-line stats program written in QuickBasic. God damn QB is so easy, and so logical!
I'm hoping that this will help towards programming in college.
-Stu
kichik
22nd September 2003 20:45 UTC
Does it work if you call cl.exe from the command line without any path? If it doesn't, it's probably because you haven't set the path and that would explain the DLL not found error.
Remember to check the options to Register Environment Variables in both SDKs, otherwise you'll need to set up the PATH and other variables yourself before the tools will work from the command line.
Afrow UK
24th September 2003 20:09 UTC
Aha!
I ran sdkvars.bat, and that set up the environment variables!
The compiler now runs without the error.
Now, when running the compiler on makefile, it says that makefile.obj is missing...
Does that need to be created?
-Stu
Joost Verburg
24th September 2003 21:32 UTC
Makefile is an outdated file for mingw32. You probably have to use nmake with a makefile generated by Visual Studio.
Afrow UK
27th September 2003 11:17 UTC
I have given up on trying to compile it myself.
Running the sdkvars batch no longer works, and I can't run the linker or the compiler.
I don't seem to have any resources to do the makefile, and the documentation refers to VS for everything that I need to do (which I don't have)
Please can someone recompile makensis this last time for me!
I want to release my final installer which fixes the missing 7za dll problem, with some of the latest NSIS CVS changes too.
-Stu
kichik
27th September 2003 12:21 UTC
Same URL.
Afrow UK
27th September 2003 12:44 UTC
Thanks very very much! :)
I won't bother you anymore; this installer is final.
-Stu