Missing .dll file
Jason Lovett

when i compile the simple Hello World example in debug or profile mode i get an error say cannot find MSVCR70D.dll please re-install the application. is there anywhere i can download this file for free?

ReyBrujo

Are you using MSVC 6? Have you downloaded the precompiled libraries, or the source? It seems you downloaded the precompiled libraries for MSVC 7 instead of 6. If so, download the precompiled package for MSVC 6 and install it (delete the different Allegro dlls, headers and directory inside your include directory as well).

Evert

Where did you get the files from? There are several packages, for both MSVC 6 and 7, available at [url http://www.allegro.cc/files/index.html]... did you pick the right one?

Jason Lovett

I am using MSVC7 and downloaded the precompiled files

ReyBrujo

(Edited: Said nothing)

Strange indeed. I don't have .NET installed, but I guess it is the debug library. Nor I have that dll installed. Try compiling the project in Release mode.

Jason Lovett

That worked would re-installing MSVC7 fix the prob?

ReyBrujo

Do you have the full MSVC compiler, or downloaded the compiler from Microsoft site? You don't seem to have debug (neither profile I guess) dlls. I think the free Toolkit comes without debug support, am I right?

(Edited: If you downloaded it, and it does not come with debug support (?), then no need to reinstall it).

Jason Lovett

I have purchased the full product and install the updates and free toolkit to give me the optimizations that comes with the pro versions

ReyBrujo

Ah... hmm... put the CD and check if you find *MSVCR70D* in there.

Jason Lovett

I currently re-installing MSVC7 fingers crossed

ReyBrujo

Two comments: 1) I don't remember MSVC 6 to ask if you wanted release, or debug and profile as well. I don't think they have included such option for MSVC 7, makes no sense. And 2) Why the debug version of Allegro is linked against the Debug version of MSVC? If Allegro crashes, you don't want MSVC callstack as well :P

Matthew Leverton

Do you have .NET 7.1? (Probably, if you are using the latest updates.) I believe Microsoft has released separate DLLs for 7.0 and 7.1. The packages available here are for 7.0.

Jason Lovett

could you give me more info on that please?

Matthew Leverton

Do you have a file named MSVCR71D.dll? I don't know how you check .NET versions.

Jason Lovett

YES, is this bad?

Matthew Leverton

It means you have version 7.1. When making the packages here, I had 7.0.

Short answer is: you probably shouldn't use the binaries here, but instead build your own.

Jason Lovett

can you tell me how to do this? i've looked at the tut for compiling in MSVC but don't understand all of it.

ReyBrujo

Hmm... Since you will recompile the DLL, it is better to download the latest WIP version, 4.1.17. The problem is, you need another compiler named MinGW to compile the assembler code.

I keep wondering why doesn't Allegro bring the assembler code compiled in another directory, so that people without MinGW can compile the code as well...

Matthew Leverton
  1. Install MinGW.

  2. Unzip Allegro source somewhere (c:\allegro)

  3. open a command window and go to your allegro dir (cd\allegro)

  4. Run your vsvars32.bat file, making sure your MSVCDir is in the short 8.3 formation.

  5. Type: fix msvc --quick

  6. Type: make all

  7. Type: make installall

The only tricky thing of the process is (step 4) setting the MSVCDir environment variable to the short DOS 8.3 format.

If you don't know how to do that, see the program attached in the first post in this thread. Just copy that file to your allegro directory and run it. It should find your MSVC location, and tell you what the path is.

Note that all the program does is try to tell you your 8.3 path. You still have to run the vsvars32.bat file manually, like: c:\program files\microsoft visual studio .net\common7\vsvars32.bat and then Set MSVCDir=C:\progra~1\micros~.net\vc (or whatever the msvcfinder said.)

If you understand what to do, it's not difficult at all. If it sounds too complex, you could wait for the upcoming WIP release which I believe finally allows for directories with spaces to work in the build process.

Evert
Quote:

If it sounds too complex, you could wait for the upcoming WIP release which I believe finally allows for directories with spaces to work in the build process.

More or less. It finds the short filename without help if you pass --msvcpaths as an option to the fix script. Not sure why that isn't default when building for MSVC actually...

Jason Lovett

how do i enter the MSVC dir so that it can run the vsvars32 from the command prompt?

Or does anywon have the MSVCR70D.dll file that they could send me?

erik

i had the same problem. I just copied msvcr71d.dll and renamed it to msvcr70d.dll. Don't know if this is a good thing to do, but it worked.

Raf256

allegro.cc files do not have pre-build of allegro 4.1.17 for mingw, do they?

I have a problem with that - because allegro 4.1.17 have problems building on my system, as I reported in http://www.allegro.cc/forums/view_thread.php?_id=452449

and pre-build 4.1.17 from DevCPP is broken (someone should inform them about it) - it needs MSVC70.dll - and doc's of 4.1.17 inform that currently it is possible to build allegro on windoze without using any micro$oft compilers related stuff.

ReyBrujo

No, they only support the 4.0.3 stable release.

The problem is that some have VC 7.0 and others have VC 7.1. The prebuilt 4.1.17 from Dev-C++ is not broken. Someone compiled it with VC 7.0 without upgrading it to 7.1. I don't know who compiled it, I guess it is not official.

I answered in that other thread, but you never tried to do what I said.

Matthew Leverton
Quote:

how do i enter the MSVC dir so that it can run the vsvars32 from the command prompt?

First you need to manually run your vsvars32.bat file from the command prompt.

c:\program files\microsoft visual studio .net\common7\tools\vsvars32.bat

That is where it normally is for a full .NET install. You'll have to find your copy and run it accordingly.

Then, you'll need to adjust your MSVCDir to use the old DOS format without spaces.

Something like:

Set MSVCDir=C:\progra~1\micros~1.net\vc7

But again, the actual path may vary. You'll have to determine that yourself. The program I linked to may assist in figuring it out. Otherwise you can do a bunch of <tt>dir /x c:</tt> to figure it out.

Quote:

Or does anywon have the MSVCR70D.dll file that they could send me?

I don't know that it is good to use the 7.0 version on 7.1. I don't know what has changed. If it were all compatible they wouldn't have renamed the file.

But, I'm sure Google has something if that's what you want to do.

Raf256

But Im talking about ones that dont have damn MSVC at all!

Allegro is supposed to be open-source multi-platform tool, or JustSomeWrapper for M$VC + DirectX? (btw, also looking at Depot is dissapointing, most games are only for windoze+directx, and still autor of allegro.cc is doing nothing to promote multiplatform use of allegro library, like links/banners/forums about MultiPlatform games).

back to main topic - so there is no place where one can download prebuild allegro 4.1.17 library (as *.dll + *.a) that work with MinGW, and that dont need neither developer or end-users to have something installed on their system (like parts of MSVC)?

gnolam
Raf256 said:

Allegro is supposed to be open-source multi-platform tool, or JustSomeWrapper for M$VC + DirectX?

Of the people who develop their games for Windows, I dare say the majority uses MinGW and not MSVC.

Raf256 said:

(btw, also looking at Depot is dissapointing, most games are only for windoze+directx, and still autor of allegro.cc is doing nothing to promote multiplatform use of allegro library, like links/banners/forums about MultiPlatform games).

What are you trying to say here? That Matthew shouldn't allow single-platform games on the depot, or what?
If you want more multi-platform games, ask the game developers to provide support for other platforms.

Here's a free hint BTW: writing "windoze" and "M$VC" instead of "Windows" and "MSVC" does nothing to get your point across. It just makes you look like an "a$$".

Raf256 said:

back to main topic - so there is no place where one can download prebuild allegro 4.1.17 library (as *.dll + *.a) that work with MinGW, and that dont need neither developer or end-users to have something installed on their system (like parts of MSVC)?

Eh? You need MinGW to compile Allegro with MSVC, not the other way around. Allegro compiles just fine with MinGW + minimal DirectX SDK.

As for the end users: the most they will need is the Allegro DLL, which you can provide yourself...

ReyBrujo

Raf256, maybe this is something you don't know. MinGW does not have a runtime library by its own. It uses Microsoft one. So, even if you compile your program with MinGW, you depend on MSVCRT60 or MSVCRT70 or MSVCRT71 or whatever new DLL Microsoft generates.

There is a project for MinGW to have its own runtime libraries, but it is very alpha right now.

Evert
Quote:

Allegro is supposed to be open-source multi-platform tool, or JustSomeWrapper for M$VC + DirectX?

Funny... most people complain about a lack of MSVC support in Allegro.

Quote:

(btw, also looking at Depot is dissapointing, most games are only for windoze+directx,

Guess what most people use?

Quote:

and still autor of allegro.cc is doing nothing to promote multiplatform use of allegro library, like links/banners/forums about MultiPlatform games).

Neither is anyone promoting single platform development. Fact of the matter is that too many people are paranoid about releasing their source code. There's quite a few people with an attitude of screw non-Windows users, I'm going to release only a Windows binary. I think it's a shame, but it's pretty useless to argue about this. I can't really get away with only supporting Linux, though that'd be a lot easier for me too. People are probably also not going to release their project for a platform they haven't tested it on.

Quote:

back to main topic - so there is no place where one can download prebuild allegro 4.1.17 library (as *.dll + *.a) that work with MinGW

Guess so. Fortunately, Allegro is an open source library that doesn't require too much hassle to compile with MinGW.

Matthew Leverton

Jason: I have attached an allegro installer for MSVC. It's quite simplistic, but give it a shot.

To use it, simply place it in your Allegro folder (the one that contains fix.bat and the makefile) and double-click on it.

It builds Allegro from source for MSVC. The only requirement is that you have already installed MinGW (linked earlier in the thread) and that "make" is in the path. I believe MinGW automatically places it's directories in the Path, so if you've installed it, you should be good to go.

Raf256

[btw, how one can Quote a text inside this forum?]

My (and others) sugestions was to promote a bit more writting multiplatform games. I started doing so recently and I find it quite easy.
If You have all libraries/utils installed correctly, then writting a Linux port (or Windows port) tooks like 1% of time, or less.

If You check from the begining if program do compile of both (or more) platforms (and do not use platform dependent stuff like <conio> or mkdir, or write a small wrapper around them that uses #ifdef SOME_PLATFORM...) then in fact no additional work (besides testing) is needed. So why not do so?

Yes, it is up to the developers of given game/program. But Allegro.cc realy could promote this idea a bit more. Like put additional lice link Linux Depot, or Linux Games, etc.

For example, imho this site is better for now in this metter:
http://www.libsdl.org/games.php
Also, the link "Depot" is not too clear, changing it to "Games Depot", or a big "Download Games" button would be much better for new allegro.cc users.

Yes, thoes are small changes, but AFAIK it will realy help and/or motivate users/developers.

ReyBrujo
Copy the text you want to quote, and surround it with <quote></quote>.
If you want a name, put the name after quote, like [quote Someone]</quote>

There are some who don't share the code (there had been some threads asking how to create a static building of a game so that they could distribute the binary instead of the sources), some who cannot port it (don't have Linux and don't ask for help), some who just cannot (because they use Win32 specific stuff).

The only thing I miss from A.cc is the ability to search for projects only for Linux/Mac/Win32. But I think it is in the members, not the site, to promote ports.

Jason Lovett

Searching in C:\Program Files

C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7
Does this location look right? (Y/N) y

Your short path name is:

C:\PROGRA~1\MICROS~1.NET\Vc7

Do you want to install Allegro now? y
Looking for vcvars32.bat...

C:\allegro\allegro>"C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\T
ools\vsvars32.bat"
Setting environment for using Microsoft Visual Studio .NET 2003 tools.
(If you have another version of Visual Studio or Visual C++ installed and wish
to use its tools from the command line, run vcvars32.bat for that version.)
Does it look like the VC environment variables were loaded successfully? y
Installing Allegro...
Configuring Allegro for Windows/MSVC...
Done!
'make' is not recognized as an internal or external command,
operable program or batch file.
'make' is not recognized as an internal or external command,
operable program or batch file.
'make' is not recognized as an internal or external command,
operable program or batch file.
'make' is not recognized as an internal or external command,
operable program or batch file.

Done.

Press any key to continue . . .

does this mean the compiling didn't work?

btw have MinGW installed to the default directory

Matthew Leverton

Edit: Please see the comment below by Marco.

Quote:

btw have MinGW installed to the default directory

Ok, it doesn't appear to be in the path.

Before running the file, try this:

SET Path=%PATH%;C:\mingw

Note, if mingw is in a different folder, adjust the command above accordingly.

Then, type:

InstallAllegro

Also, I've attached a new version here to try.

In review:

  • Download the new installer and place it in your Allegro directory

  • Open up a command window and Cd to your allegro directory.

  • SET Path=%PATH%;C:\mingw

  • InstallAllegro

Marco Radaelli

By default Mingw make is named mingw32-make.exe. Rename it to make.exe an repeat the process :)

Matthew Leverton

Good call, Marco. ;)

I always forget that. Go to your c:\mingw\bin directory and rename the mingw32-make.exe to make.exe.

Before you try what I said above, try this:

  • Rename mingw32-make.exe to make.exe

  • Download the new version of the installer and copy it to your Allegro folder

  • Double-click it

Jason Lovett

I've tried that but i get the same error's i tried putting the file in my allegro directory and my mingw directory

Matthew Leverton

So you have it renamed to make.exe and you have downloaded the installer above?

Open a DOS prompt and type: set

And paste the result for PATH.

Jason Lovett
Quote:

And paste the result for PATH.

there lot of text what do i copy where

I'm sorry if i sound stupid

Evert

He meant, post the output on the forum so we can see what it looks like.
:)

Jason Lovett

sorry

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Jason>set
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\Jason\Application Data
CLIENTNAME=Console
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=JASON-MK9NWK75U
ComSpec=C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\Jason
INCLUDE=C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\include\;C:\
Program Files\Microsoft Visual Studio\VC98\atl\include;C:\Program Files\Microsof
t Visual Studio\VC98\mfc\include;C:\Program Files\Microsoft Visual Studio\VC98\i
nclude
LIB=C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Lib\;C:\Program
Files\Microsoft Visual Studio\VC98\mfc\lib;C:\Program Files\Microsoft Visual Stu
dio\VC98\lib
LOGONSERVER=\\JASON-MK9NWK75U
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Mi
crosoft Visual Studio\Common\Tools\WinNT;C:\Program Files\Microsoft Visual Studi
o\Common\MSDev98\Bin;C:\Program Files\Microsoft Visual Studio\Common\Tools;C:\Pr
ogram Files\Microsoft Visual Studio\VC98\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 12 Stepping 0, AuthenticAMD
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0c00
ProgramFiles=C:\Program Files
PROMPT=$P$G
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\DOCUME~1\Jason\LOCALS~1\Temp
TMP=C:\DOCUME~1\Jason\LOCALS~1\Temp
USERDOMAIN=JASON-MK9NWK75U
USERNAME=Jason
USERPROFILE=C:\Documents and Settings\Jason
VS71COMNTOOLS=C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\
windir=C:\WINDOWS

C:\Documents and Settings\Jason>

Matthew Leverton

All you should have to do is this:

cd\allegro
set path=%PATH%;C:\MINGW\BIN 
InstallAllegro

You'll need to adjust the paths on the first two lines as appropriate.

Jason Lovett

I think that worked but the last line said this make: *** [installall] Error 2. Is this bad?

Matthew Leverton

Do you still have the window open to paste the last couple of lines here?

Jason Lovett

no shall i run it again?

Matthew Leverton

Yeah, just run it again.

Jason Lovett

here all the text that was viewable at the end:

[edit: snip]

ing old commands for target `Studio'
makefile.vc:266: warning: overriding commands for target `.NET'
makefile.vc:263: warning: ignoring old commands for target `.NET'
make[1]: Entering directory `C:/allegro/allegro'
Compiling Allegro for MSVC, optimised. Please wait...
make[1]: Nothing to be done for `lib'.
make[1]: *** No rule to make target `include/allegro/platform/%.h', needed by `C
:/Program'. Stop.
make[1]: Leaving directory `C:/allegro/allegro'
make: *** [installall] Error 2

Done.

Press any key to continue . . .

Matthew Leverton

Ok, it's built. I think I left one thing out in the installer.

You can manually copy the files in your c:\allegro\allegro\lib and \include folders into your VC7 lib and include folders.

Also, copy the new Dlls (in c:\allegro\allegro\lib) into your windows\system32 folder.

-

Or, I've attached yet another version of the installer that should fix the problem if you want to run it once more.

Raf256

Ok, after a while I got all sorted out (thanks to help on this forum :)

I also made a small tutorial by the way, both on
compiling allegro on mingw:
http://www.raf256.com/cpp/allegro/install/mingw/doc1/?lang=en
and how to build programs using it, in DevCpp:
http://www.raf256.com/cpp/allegro/ex1/?lang=en

all comments welcomed

Evert
Quote:

I also made a small tutorial by the way, both on compiling allegro on mingw:

Looks nice! But, I have to ask, what does it add to the explanation that is already linked on this site, or in the Allegro manual?
It seems to me that it would mostly be a copy of information that's already available...

Raf256
Quote:

Looks nice! But, I have to ask, what does it add to the explanation that is already linked on this site, or in the Allegro manual?

1. Uhm, with manual on this site? Oh, http://www.allegro.cc/files/install-devcpp.html I didnt notice it bedore. I hope my manual is a bit more detailed in some parts. I will link from it to the allegro.cc install manual also.
2. There is no pre-compiled version of .a+.dll of 4.1.17, compiled without need for MSVC70 (compiled in MinGW, not in MSVC7)? If there is none, then perhaps copy my files from
http://raf256.com/cpp/allegro/files/
to allegro.cc Files section?

ReyBrujo

Allegro.cc files support only the stable branches, not the WIP ones.

Jason Lovett

I know that there are doc to explain how to compile under MSVC7. I read them they didn't help so that is why i posted this, there was simply not enough detail for someone who rarely uses cmd.

Thread #452679. Printed from Allegro.cc