Archive: DLL error stopping installer run


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


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


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


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.


Ah ok, well the only other things being used are InstallOptions, 7-zip (command line), Banner, and Brainsucker's NotifyIcon plugin.

-Stu


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.


You can also compile a static 7-zip version.


I'm using 7za.exe

-Stu


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


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


Thanks for that.
I will ask the user exactly when it happens.

-Stu


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:


Why not use the .NET SDK?


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.


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


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


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.

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


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 :)


The .NET SDK should include a compiler, not the Core SDK (that one contains libs/headers).


I'm going to extremes now, and searching my whole hard drive for cl.exe!

-Stu :o :)


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


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.

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


Makefile is an outdated file for mingw32. You probably have to use nmake with a makefile generated by Visual Studio.


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


Same URL.


Thanks very very much! :)

I won't bother you anymore; this installer is final.

-Stu