![]() |
|
Grabber.exe is being really lame with MSVC |
TheOneAndOnlyT
Member #7,291
May 2006
|
... or, more appropriately, it's not working at all. I've been using MSVC++ Express 2005 with no problems lately, but Allegro doesn't seem to want to work with it, or at least the grabber doesn't want to. If I try to run grabber.exe, it tells me that the program "cannot be run because MSVCR80.dll cannot be found." I have no clue why this is happening, or where I might locate this DLL -- reinstalling MSVC didn't do a thing. Any ideas on what I should do here? EDIT: Upon closer inspection, it seems I do have a file called MSVCR70.dll in C:/windows/system32. Does this mean I need to download the binaries for MSVC 7.0 instead of 8? DOUBLE EDIT: Damn it, there seems to be only one version of the "tools" download on the files page. Guess that's not what I want. |
Dennis
Member #1,090
July 2003
![]() |
I also have 2005 express and it should come with the 80 version of those .dll files. Maybe you deleted the .manifest file for grabber.exe or forgot to embed it and so windows can't find the correct version of the needed .dll file. --- 0xDB | @dennisbusch_de --- |
TheOneAndOnlyT
Member #7,291
May 2006
|
The thing is, though, I didn't do anything. I just downloaded and installed Allegro yesterday. Nothing has been deleted or edited. EDIT: Hey, guess what? I DO have that DLL, in the place you mentioned. Apparently Grabber just doesn't want to find it for whatever reason. |
Dennis
Member #1,090
July 2003
![]() |
And is there a .manifest file for grabber.exe? --- 0xDB | @dennisbusch_de --- |
TheOneAndOnlyT
Member #7,291
May 2006
|
I don't know if the .manifest file is embedded or not, but there isn't one in the folder. Could that be the problem? Also, I just tried running an allegro program that didn't need to use the grabber, and it compiled fine, but got the same missing .dll error. I hope I won't need to find/make .manifest files for all of my projects... EDIT: Well, I tried throwing that .dll into C:/windows/system32, and I'm not getting the missing .dll error anymore, but now I'm getting a runtime error. Apparently my program "made an attempt to load the C++ runtime library incorrectly," whatever that means. Help! |
Evert
Member #794
November 2000
![]() |
Quote: Apparently my program "made an attempt to load the C++ runtime library incorrectly," whatever that means.
It probably means you're missing the manifest file, but I don't know. |
TheOneAndOnlyT
Member #7,291
May 2006
|
How would I go about finding this manifest file? Does it come with the binary I downloaded? |
Dennis
Member #1,090
July 2003
![]() |
The runtime error means that your not loading, or that your programme thinks it's not loading, the correct .dll version. That issue is directly related to those .manifest files. MSVC2005 needs .manifest files usually for each generated .exe and normally MSVC2005 should generate those .manifest files itself and there is an option somewhere to embed these files into the .exe on compile time. Long story short (or not so short): and then read this: http://awiki.tomasu.org/bin/view/Main/VisualCExpress2005 --- 0xDB | @dennisbusch_de --- |
TheOneAndOnlyT
Member #7,291
May 2006
|
Okay, thanks for that. But do I need to rebuild Allegro for the batch file to do anything? Or can I just run it on the pre-built binary that I have? |
aadfo824
Member #7,265
May 2006
|
thats all very nice, but is there english instructions, I don't really understand command line copilation. |
TheOneAndOnlyT
Member #7,291
May 2006
|
aadfo, you won't have to worry about that if the batch file works correctly. All a batch (or .bat) file is is a sequence of command-line statements written for you already. |
Dennis
Member #1,090
July 2003
![]() |
Quote: Okay, thanks for that. But do I need to rebuild Allegro for the batch file to do anything? Or can I just run it on the pre-built binary that I have?
Yes you do need to rebuild allegro with MSVC2005 for Matthews batch file to work correctly. If you haven't build allegro with MSVC2005 then you won't have any .manifest files for the allegro .dll and .exe files, which that batch file will embed for you. --- 0xDB | @dennisbusch_de --- |
TheOneAndOnlyT
Member #7,291
May 2006
|
How would I go about rebuilding Allegro then? I don't know anything about this stuff. |
Dennis
Member #1,090
July 2003
![]() |
In the folder where you have extracted Allegro to, there is a directory called docs\build\ --- 0xDB | @dennisbusch_de --- |
TheOneAndOnlyT
Member #7,291
May 2006
|
... okay, now I'm really angry. The whole point of rebuilding Allegro like this is to get rid of the missing .dll error I've been getting, right? Well, I did everything msvc.txt told me to do, and then typed in make... AND I GOT THE MISSING .DLL ERROR. Now I need some file called mspdb80.dll, or I can't run make. WHAT THE HELL AM I SUPPOSED TO DO? EDIT: To top it all off, I can't find the .dll like I could for the first one. I'm stumped here. DOUBLE EDIT: Found it. It's in C:\Program Files\MSVS8\Common7\IDE. TRIPLE EDIT: Whew, I had to change a lot of system variables. Well, I've ALMOST got make working now. For some reason, though, it stops about halfway through, saying it can't find a file called windows.h. Where would I find this file? |
Dennis
Member #1,090
July 2003
![]() |
Quote: saying it can't find a file called windows.h. Where would I find this file? It is in the w32api package of MinGW. --- 0xDB | @dennisbusch_de --- |
Matthew Leverton
Supreme Loser
January 1999
![]() |
Quote: It is in the w32api package of MinGW. Isn't he compiling it for VC? He needs the Platform SDK from Microsoft. |
Dennis
Member #1,090
July 2003
![]() |
I'm not sure about that. There was something with VC Express that needed the MS Platform SDK, but I couldn't remember if it was needed for compiling Allegro. It probably was, because otherwise I would have had no reason to download that rather large package. My memory told me it was just needed for building "not .NET" windows applications with VC, guess my memory was wrong on that. Before that issue pops up: --- 0xDB | @dennisbusch_de --- |
TheOneAndOnlyT
Member #7,291
May 2006
|
Well, it appears I might be stuck beyond help now: I ran into that windows.h error, then realized it was in the Microsoft Platform SDK and got it. Then I ran into a missing ddraw.h error, but "ddraw" is blatantly a DirectX header, so I got that too. But now, it's telling me that I'm missing MSVCR80.dll. That's right, the very same .dll that made me go and rebuild Allegro in the first place. Either my computer is seriously messed up, or there's something I'm not thinking of here. Any ideas? EDIT: Changing the system variable "Path" to include the folder that the .dll is actually in gives me the same error as when I threw the .dll's into C:\windows\system32. Apparently Allegro is unable to load the .dll "correctly." What BS. |
Evert
Member #794
November 2000
![]() |
Is your compiler actually working properly if you compile and run #include <stdio.h> int main(void) { printf("Hello world!\n"); } ? Or does that give a warning about missing DLL's too? |
Matthew Leverton
Supreme Loser
January 1999
![]() |
Quote: EDIT: Changing the system variable "Path" to include the folder that the .dll is actually in gives me the same error as when I threw the .dll's into C:\windows\system32. Apparently Allegro is unable to load the .dll "correctly." What BS. VC 8 (also Express) does not use DLL's like that. You cannot just throw them around and assume they will work! With VC8 and XP, Microsoft implemented a complicated system (manifest files, etc) that allows side-by-side system wide installation of multiple versions of the same DLL. |
BAF
Member #2,981
December 2002
![]() |
Install the MSVC 8.0 runtime (or .NET 2.0, it might include all that crap) ? |
TheOneAndOnlyT
Member #7,291
May 2006
|
Evert: Yes, it is. Actually, with the binary I have, I can get the following program to run: #include <allegro.h> int main(void) { allegro_init(); allegro_message("Hello World!"); return 0; } END_OF_MAIN() So it's not as though MSVC can't find allegro or something. However, if I try to do anything graphics-related, I get the .dll error. BAF: I already installed that. It came with MSVC. EDIT: Is it possible for someone to just send me these manifest files? I really need to get this working as soon as possible. DOUBLE EDIT: I think I may have found the problem. I found the .manifest file for one of my Allegro projects, and opened it up. The manifest file seems to be pointing to the right folder, but the "version number" specified in it is lower than the actual .dll's. How do I tell MSVC that there are newer .dlls out? |
|