Windows-DLL unter 32-bit-DOS einbinden

Hallo,
ich habe hier eine knifflige Programmier-Aufgabe.
Ich soll versuchen Routinen einer Windows-DLL von einem vorhandenen C-Programm aus aufzurufen (Quelltext vorhanden) und das ganze dann unter einem etwas exotischen 32-bit-DOS zum laufen bringen.
Auf der alten Maschine stehen nur relativ alte C-Compiler wie
Borland-C 3.0 und Borland C++ V3.1 zur Verfügung.

Weiss jemand, ob das überhaupt geht - und wenn, dann wie?

Gruss Andy

Hallo Andy,

Auf der alten Maschine stehen nur relativ alte C-Compiler wie
Borland-C 3.0 und Borland C++ V3.1 zur Verfügung.

Weiss jemand, ob das überhaupt geht - und wenn, dann wie?

Ich sehe da nur zwei Möglichkeiten:

  1. Du schreibst die DLL so um, dass sie ein DOS-Interface hat.
  2. Du schreibst ein Interface, welches einerseits den DOS-Konventionen entspricht und auf der anderen Seite mit der WIN-DLL umgehen kann. Dazu musst du aber auch den Loader für die WIN-DLL schreiben.

Der zweite Weg ist sicher universeller, weil du dabei den Sourcecode der WIN-DLL nicht benötigst.

MfG Peter(TOO)

Hallo Peter,

da ich den Quelltext der DLL nicht habe, bleibt mir nur der 2. Weg.
Hast Du einen Tip wie ich nen Loader für die DLL unter DOS schreibe?

Gruss Andy

Hallo Andy,

Hast Du einen Tip wie ich nen Loader für die DLL unter DOS
schreibe?

naja, so einfach ist das Ganze dann doch nicht. Zunächst würd ich mal nachschauen (Stichwort Dependency Walker = http://www.dependencywalker.com/), von welchen anderen Bibliotheken die DLL noch abhängt. Ggf. hast du nämlich auf deinem Zielsystem überhaupt kein Recht, die weiteren DLLs zu benutzen oder die Nutzung derselben ist auf Windows beschränkt oder deine DLL funktioniert nur mit einem Betriebsystem, welches auch die Nt* Funktionen zur Verfügung stellt (das dürfte der Normalfall sein!), und dann wäre die ganze Arbeit vergebens …

Gruss
norsemanna

Hallo,

danke für die Tipps, das wars dann wohl,
da werde ich mir wohl was anderes einfallen lassen müssen.

Gruss Andy