WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Software (http://www.wcm.at/forum/forumdisplay.php?f=5)
-   -   Dos-error ??? (http://www.wcm.at/forum/showthread.php?t=234450)

Wildfoot 29.04.2009 21:59

Dos-error ???
 
Hallo Leute

Ich habe ein Problem, das mich etwas erstaunt.

Ich habe ab und zu auf meiner P4 Maschine mit XP Pro drauf kleine selber geschriebene 32Bit C-Programme kompiliert. Dort liefen diese Programme auch immer wunderbar. Aber dann wollte ich diese Programme mal auf meiner neuen C2EE Maschine mit Win Vista Ultimate 64Bit laufen lassen. Das ging natürlich wegen dem 32 <=> 64 Bit Problem nicht. Ja gut, dachte ich, dann eben in der DOS-Box, welche bei mir unter Vista 64Bit perfekt läuft. Aber!! Wenn ich nun in der DOS-Box (Ver. 0.72) mein Programm starte, dann kriege ich die Error-Meldung:

Load error: no DPMI - Get csdpmi*b.zip

Hmm... Naja, könnte ja sein, dachte ich, dass da ein Plug-In fehlt und lies es dabei bleiben.
Später dann aber mal startete ich meinen P4-Schleppy (mit der Northwood CPU eine 32Bit Maschine) über die Windows Millennium Notfall-Diskette ins DOS. Jetzt probierte ich es erneut mit meinem Programm und erhielt promt wieder eine Fehlermeldung:

Load error: no DPMI - Get csdpmi*b.zip

So und jetzt?? Was fehlen meinen DOS-Versionen hier?? Oder was habe ich da mit rein kompiliert, was mir im "Standard-DOS" nun fehlt?? Weil auf dem P4-Desktop, auf welchem ich das Programm kompiliert habe, da läuft es wunderbar??
wo könnte ich denn allenfalls dieses csdpmi*b.zip her bekommen??

Hoffentlich könnt ihr mich da etwas entwirren, mir fehlt da momentan etwas der Durchblick.

Merci und Gruss, Wildfoot

ZombyKillah 29.04.2009 22:50

First Hint:
http://de.wikipedia.org/wiki/DOS_Pro...Mode_Interface
First possible solution:
http://tdold.teadrinker.net/mr/download.htm
Ein ähnliches Problem in einen anderen Forum
http://www.pcfreunde.de/forum/t20/dos-emulator/5/
mit verweis auf Seite: http://www.zimmers.net/anonftp/pub/c...dos/index.html

Hoffe ein wenig verwirrung gestiftet zu haben.
P.s.: 32bit / 64bit darf keine probleme hervorrufen!
Es ändert nichts an der Speicherverwaltung oder an den Befehlssätzen.
Das einzige was geändert wird, ist dass 64bit Werte in "einem" Takt gerechnet werden können.
Und dass MS (Weil es scheiße programmiert wurde) in der 64bit Version mehr RAM unterstützt.
Das ist allerdings kein Hardwareproblem.
Linux kann mit 32bit auch 8GB Ram verwalten.

Wildfoot 29.04.2009 23:02

Nun nicht ganz. :-)
Du müsstest das C-Programm beim Kompilieren 64Bit kompatibel kompilieren. Dazu müsstest du aber einen Kompiler haben, der 64Bit kann, DJGPP jedoch kann das nicht. ;)

O.K. das mit dem Zip-File könnte ich mal probieren, doch wo soll ich das hin extracten??

"Download cwsdpmi.zip and extract it into the MR folder."

Sollte das bei mir anstelle von MR vielleicht Dos-Box heissen??

Gruss und Merci, Wildfoot

ZombyKillah 29.04.2009 23:12

Dos-Box ist die Dos-Simulation unter linux ...
Ich hätte es mal in einem PATH verzeichniss, oder im selben Verzeichniss des Programms versucht.
Hab in der Zwischenzeit noch was gefunden:
http://www.linuxtopia.org/online_boo...dfaq5_004.html

Wohin man des unter MS-Dos kopieren muss ... ich weiß es nicht.

Dadurch, dass alle CPUs noch voll 32bit Kompatible sind kann man einen normalen 32bit Compiler verwenden ... es kann nur sein, dass das Programm bei der Anwendung eines 64bit Compilers schneller rennt.

Mich wunderts, dass der djgpp das nicht kann ... aber die offizielel HP gibt dir recht.

Wildfoot 29.04.2009 23:33

Hmm..

Also irgendwie klappt das "noch" nicht. Ich hab irgendwie das Gefühl, da fehlt irgendwo noch eine Pfadangabe?? Denn ich habe es genau nach Linuxtopia gemacht, klappt aber nicht. :(

Gruss Wildfoot

ZombyKillah 29.04.2009 23:35

Ich habe eine theorie entwickelt ... installier mal djgcc auf dem Rechner, auf dem du das Programm ausführen wilst.

Dann probiers noch mal.

FranzK 30.04.2009 00:31

Hatten wir dieses Thema nicht bereits erledigt? Du hast das begriffliche Problem noch immer nicht verstanden/überwunden. Du kompilierst DOS-Anwendungen, die auf große Speicherbereiche zugreifen wollen. Dazu brauchst du einen sogenannten DOS-Extender, der das Speichermanagement für die eigentlich DOS-fremden Bereiche jenseits von 1MB übernimmt. Dessen Fehlen bedeuten ja die Fehlermeldungen. Um das Problem am einfachsten vom Tisch zu bekommen, musst du deine Programme als Windows-Consolenanwendungen kompilieren und es steht ihnen sofort der gesamte Windows-Speicher zur Verfügung (möglicherweise musst du dann im Code andere Funktionen für Speicheranforderung verwenden, aber das ist schnell erledigt).

:hallo:

Wildfoot 30.04.2009 21:01

Zitat:

Zitat von FranzK (Beitrag 2359601)
Hatten wir dieses Thema nicht bereits erledigt? Du hast das begriffliche Problem noch immer nicht verstanden/überwunden. Du kompilierst DOS-Anwendungen, die auf große Speicherbereiche zugreifen wollen. Dazu brauchst du einen sogenannten DOS-Extender, der das Speichermanagement für die eigentlich DOS-fremden Bereiche jenseits von 1MB übernimmt. Dessen Fehlen bedeuten ja die Fehlermeldungen. Um das Problem am einfachsten vom Tisch zu bekommen, musst du deine Programme als Windows-Consolenanwendungen kompilieren und es steht ihnen sofort der gesamte Windows-Speicher zur Verfügung (möglicherweise musst du dann im Code andere Funktionen für Speicheranforderung verwenden, aber das ist schnell erledigt).

:hallo:

Nein, so nicht. ;)
Mein "altes" Problem war das 32 <=> 64Bit Problem. Das haben wir hier aber nur kurz angeschnitten und dann gleich wieder liegen gelassen (denke ich zumindest). Denn mein Schleppy war ja auch eine reine 32Bit Maschine, das hat mir sogar eine 64Bit Xubuntu Live-CD bestätigt, welche sich weigerte, auf diesem Schleppy zu booten.

Das Problem aber nun hier ist, dass ich auf verschiedenen DOS-Versionen eben besagte Fehlermeldung erhielt, welche ich erst nicht kannte und somit auchnicht einordnen konnte. Jetzt aber sind wir beim Schritt, dem Problem Abhilfe zu verschaffen.

Bezüglich Kompilieren, ich habe im Moment leider nur den DJGPP, da kann ich aber genau garnichts einstellen. Leider sind mir bisher keine weiteren guten Kompiler (möglicherweise sogar solche, welche 64Bit können) bekannt. Ich wollte schon lange mal mich da einarbeiten, doch fehlte mir bisher immer die Zeit.

Gruss Wildfoot

Wildfoot 02.05.2009 00:07

Heureka!!
 
Also Leute, das ist echt cool!! Es läuft! :D

Es fehlte nurnoch, wie ich es schon vermutet habe, die Pfad-Angabe. ;)

Also, am meisten hat mir dieser Link

http://www.linuxtopia.org/online_boo...dfaq5_004.html

von ZombyKillah geholfen. Also wie da beschrieben die Files runter geladen und in das Verzeichnis "GSED.EXE" kopiert/extractet. Wo dieses Verzeichnis gespeichert ist, ist wurscht, wichtig ist nur, das die Pfad-Angabe im DOS (DOS-BOX oder "normal"-DOS) auch in dieses Verzeichnis verzeigt. Und schon läuft es. :D
Jetzt kann ich sogar über die DOS-Box meine mit DJGPP kompilierten 32Bit Programme auf Vista 64Bit laufen lassen. ;)

Merci nochmals an alle für die Hilfe.

Gruss Wildfoot


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag