Fehlermeldung "Nicht unterstützte 16 Bit-Anwendung



  • suche Hilfe bei einem (kleinen) C++ Projekt, NRW/Duisburg

    nicht an mehreren Stellen im Forum um Hilfe fragen

    kannst du deinen Quelltext einfach bei pastebin.com reinstellen und die pastebin-Link hier posten?



  • also:

    0. Was macht das Programm?
    1. Quelltext bei pastebin.com rein
    2. was ist das Original-Entwicklungs-System, DOS und Turbo-C?
    3. Es ist also eine 16-Bit Anwendung?
    4. Gibt es Hardwarezugriff? RS232, BIOS/Interrupts usw.?
    5. Wieviel Zeilen Code sind es denn? 100, 100, 1Mio?



  • Guten Morgen, so habe den Quelltext bei pastebin reingestellt.
    Sollte man unter DDCMP.C finden. (Was ist mit der Header Datei?)
    Es sind 1410 Zeilen. Das Programm sollte so genannten EVADTS Daten
    aus einem Automaten auslesen und über die RS232 in eine Datei ausgeben.
    Die Daten werden vom Programm geparst und sichtbar gemacht.
    Habe hoffentlich alle Fragen beantwortet. Sonst einfach nochmal
    nachfragen. Schon mal vielen Dank für die Hilfe, jueppes



  • sorry ganz vergessen hier der pastebin Link.

    https://pastebin.com/TLZqDKFw

    schönen Sonntag, jueppes



  • Das ist kein compilierbarer Stand und obendrein schlimmes Gehacke.
    Die Header fehlen, evtl. fehlen auch noch Libs?
    Wenn die Lizenzbedingungen es hergeben, lade es in Github hoch und hoffe, dass sich dann jemand des Problems annimmt.



  • Hallo Wutz, erst mal Danke für deine Hilfe.
    Ja 20 Jahre altes Programm, was kann ich zur
    Unterstützung der Umsetzung beitragen? MFG jueppes



  • Welche externen Libs sind denn noch dabei (anscheinend über die Headerdatei "asynch_1.h" eingebunden)?
    Und hast du auch noch die Sourcen davon?

    Ich gehe davon aus, daß die Libs (DLLs) selbst als 16-Bit kompiliert sind und daher daraus dann keine 32- oder 64-bit Anwendung erstellt werden kann.

    Und welche Windows-Version hast du?

    PS: Hast du denn überhaupt (noch) einen Rechner mit einem nativen RS232-Anschluß? Oder benutzt du einen "USB Seriell RS232 Adapter"?



  • Hallo,

    da gehört noch eine Library dazu. Wir sehen hier nur, dass ein Header "asynch_1.h" eingebunden wird. Die wird man vermutlich nicht zum Laufen kriegen, d.h. man wird das ganze RS232-Handling durch ein modernes Äquivalent ersetzen müssen. Das läuft also auf Reverse-Engineering hinaus.

    Ich schätze, zusätzlich zur reinen Anpassung an moderne Systeme werden folgende Schwierigkeiten hinzukommen:

    • Crashes wegen unsauberem Pointer-Gefummel, was zu DOS-Zeiten einfach nicht aufgefallen ist
    • man müsste es im Zusammenspiel mit der Hardware testen und debuggen, die hast aber nur du zur Verfügung

    Als Option würde ich erwägen, einen DOS-Rechner anzuschaffen und das im Original zu betreiben. Der Digital Mars Compiler kann das vielleicht übersetzen, so dass man nicht auf dem DOS-Rechner arbeiten muss.

    http://www.digitalmars.com/download/freecompiler.html

    Nur so ein paar Ideen.



  • Darüberhinaus wäre die dos.h zu ersetzen, falls man zu Fuß übersetzen muss.
    Die Digital Mars-Seite schreibt zu seiner dos.h:

    These are interfaces to the DOS operating system. They generally correspond directly to DOS API calls. They are not portable to operating systems other than DOS.

    ( http://www.digitalmars.com/rtl/dos.html )

    Es könnte aber schon reichen, zum Übersetzen ein 32Bit Windows zu nehmen (weil z.B. Windows Vista 32 recht gute Dos-Kombatibilität hatte bzw. z.B. bei einigen schwierigen Vertretern wie exe2bin ( https://de.wikipedia.org/wiki/EXE2BIN ) mitgemacht hatte ohne meckernd den Dienst zu versagen.)
    Bei schwierigen .com Programmen mit Grafik wollte aber die Grafikkarte nicht mehr so recht mitmachen weswegen
    -> Dosbox https://www.dosbox.com auch noch einen Platz auf der Platte bekommen hatte.



  • Hallo an Alle, super vielen Dank für die Anregungen und Hinweise.
    Jetzt mal von Anfang an, ich habe von diesem EVADTS Verein eine
    komplette Datei per Mail gesendet bekommen. Diese beinhaltet ein
    Programm in C/C++ welches ich zum auslesen der RS232 benutzen wollte.
    (gerne sende ich Euch oder Interessenten die Datei per Mail)
    Auf meinem Computer Windows7 64bit bekomme ich das Programm weder
    mit Visual Studio noch mit Code : Blocks ans laufen. Keine Chance

    Die Maschine sendet die Daten über das Menü "Daten an
    Drucker senden" auch als ASCI Files über die serielle Schnittstelle.
    Das klappt super und ist auch ganz einfach, man kann dann über ein
    Terminalprogramm die Daten einlesen und sofort weiterverarbeiten.
    Leider sind die ASCI Daten nicht komplett bzw. nur ein kleiner Teil.
    Deshalb die Suche nach einem Programm mit dem ich die Daten komplett
    auslesen kann. Dieses Programm von EVADTS ist wohl über 20 Jahre alt.
    So und jetzt die Gretchenfrage: Soll ich versuchen die alte Version
    ans laufen zu bekommen oder soll ich was neues machen? Programme die
    die RS232 Schnittstelle abfragen gibt es schon und sind auch nicht
    so kompliziert Aber ich muss ja auch noch die Daten parsen und um so was
    allein zu programmieren fehlt mir das Wissen und die Zeit, deshalb suche
    ich hier jemanden der mich bei diesem Projekt unterstützt. Wenn jemand
    Lösungsvorschläge hat "Bitte melden" Liebe Grüße jueppes



  • - du kannst versuchen, dein unverändertes Programm in einem DOS-Emulator laufen zu lassen
    - Portierungsversuche klappen prinzipiell nur, wenn du die kompletten Sourcen (d.h. die aller externen Libs) hast
    - und auch dann solltest du prüfen, wieviel DOS-Abhängigkeiten vorhanden sind (typischerweise haben die 16-Bit Jünger damals gern direkt irgendwelche Register beschrieben, Interrupts umgebogen oder gar direkt auf irgendwelche festen Speicheradressen geschrieben)
    - du darfst dein Thema nicht aus den Augen verlieren - du willst keinen DOS-Emulator schreiben sondern dein Programm unter Win32 zum Laufen bringen und deshalb prüfe, wieviele reine DOS-Abhängigkeiten (ohne RS232) vorhanden sind und entscheide, ob du das schaffst
    - wie du richtig erkannt hast gibt es haufenweise Win32-Libs für RS232, du musst dann nur in der Lage sein, diese RS232-Abhängigkeiten in dem alten Programm zu lokalisieren und auf deine neue RS232-Lib umzubiegen - dabei stellt sich natürlich auch die prinzipielle Frage - soll es noch eine Portierung werden und doch gleich eine Neuimplementierung; das hängt von deiner Einschätzung ab, wieviel aus deinem alten Programm ausserhalb der RS232 für dich wichtig ist



  • du bist sehr unklar in deiner Kommunikation:

    ich habe von diesem EVADTS Verein eine
    komplette Datei per Mail gesendet bekommen. Diese beinhaltet ein
    Programm in C/C++ welches ich zum auslesen der RS232 benutzen wollte.
    (gerne sende ich Euch oder Interessenten die Datei per Mail)

    was ist eine "komplette Datei"?

    (gerne sende ich Euch oder Interessenten die Datei per Mail)

    Ist das ein anderes C/C++ als das auf pastebin oder warum sonst sollte die Mail relevant sein?

    du beantwortest fast keine Fragen eindeutig und es ist noch immer unklar was du jetzt gerade überhaupt an Dateien/Programmen hast?

    1. Hast du ein DOS-Program? Fehlermeldung "Nicht unterstützte 16 Bit-Anwendung" deutet stark darauf hin - du hast es aber noch nicht klar gestellt und redest nur ständig von Quelltext den du bekommen hast

    ein Programm ist kein Quelltext

    2. wie viele Quelldateien sind es denn jetzt 1 oder mehrere?
    - in dem pastbin-Quelltext wird auf Dateien verwiesen die du nicht auf pastebin
    gestellt hast - hast du die oder ist das Programm gar nicht kompilierbar

    3. hast du nur die pastebin-Quelltextdatei von dem Verein bekommen? Woher hast
    du dann die DOS-Exe?

    Es kann doch echt nicht so schwer sein deutlich und eindeutig klar zu stellen was sich genau und in welchem Umfang in deinem Besitzt befindet - für den Anfang wäre das schon mal nicht so schlecht - es schreckt Leute massiv ab wenn man dir schon für solche minimal-Details tausend Fragen stellen muss



  • sorry, alles komplett neu für mich.
    da sind rudimentäre Kenntnisse in Basic,VB, HTML, PHP,
    C, C++ nicht hilfreich, ich hätte mich auf eine Sache
    konzentrieren sollen, aber ich gelobe Besserung:
    Ich will auch keinen abschrecken sondern Hilfe finden.
    Also wenn ich von der "Datei" die ich bekommen habe spreche,
    meine ich einen Ordner mit Object File Library, Object File,
    Header file und C source file. Bei pastebin habe ich nur die
    C source File Datei eingestellt. Es wäre bestimmt einfacher
    den ganzen Ordner per Mail zu versenden, oder? schon mal Danke jueppes



  • 1. Eine dos exe hast du doch auch, oder?
    2. Hast du ein dos system oder irgendwas wo die dos exe laeuft z.b. dos,win3.11,win95,win98,2000 oder sowas und mit deiner hardware richtig kommuniziert? Ein funktionierendes system ist sehr wichtig fuer tests wenn man nachprogrammiert, ohne das wird es ungleich schwieriger

    2 fragen gleich 2 antworten

    Am besten stellst du einfach ALLES also dateien und email text usw. Z.b. bei fastshare.org rein - wenn das geht

    Und nur so viel: der code nutzt interrupts fuer timer und direkte serielle port programmierung, das laesst sich definitiv nicht so einfach portieren
    Auch ist unklar wie wichtig das zeitverhalten bei timeouts usw. ist



  • Hallo an Alle, also meine Fähigkeiten reichen definitiv nicht aus das Programm ans laufen zu bekommen geschweige denn es umzuschreiben.
    Und deshalb frage ich jetzt ganz direkt, mag oder kann mir jemand das
    Programm für ein aktuelles Computer System ändern/umschreiben ?
    Wer Interesse hat kann sich ja mal melden.
    Ich sende dann das komplette Programm mit allen dazugehörigen Dateien
    per Mail. Wenn derjenige drüber geschaut hat, kann er mir auch (s)einen
    Preis nennen. Alles weitere werden wir dann sehen. Liebe Grüße jueppes



  • Hallo an Alle, also meine Fähigkeiten reichen definitiv nicht aus das Programm ans laufen zu bekommen geschweige denn es umzuschreiben.

    das haben wir uns schon gedacht 🙂

    Wenn derjenige drüber geschaut hat, kann er mir auch (s)einen
    Preis nennen.

    ohne Information ob du ein laufendes (altest DOS + die Hardware) Testsystem hast ist das schon mal schwierig

    noch dazu beantwortest du direkte Fragen so gut wie gar nicht (jedes ? wird einfach ignoriert) - meinst du das drückt den Preis, oder denkst du das macht man mal eben in 10min - ich schätze mit Tests können das locker 1-2 Tage werden, ohne echte Testumgebung vielleicht auch länger weil man ja keine Ahnung hat wie kritisch das Zeitverhalten, wackelig das Protokoll ist, dein Vorbereitung/Wissen über dein Wissen ist hier wichtig - da kommt so gut wie nichts

    nicht einfach davon ausgehen das es für einen "Profi" trivial ist und einfach immer nur Posts schreiben die in verschiedenen Formen deinen Anforderungen oder Fähigkeiten ausdrücken, das hilft nicht

    Es ist irrelevant wie gut du programmieren kannst - aber Fragen beantworten und detailliert und eindeutig sein wäre echt schon mal ein Anfang



  • stellt die Dateien (als Zip) auf
    http://www.fastshare.org/

    und schick mir den Download-Link an
    66h_5534zp2cc00x@byom.de

    ich schau am Wochenende mal drauf



  • Hallo, auch wenn ich mich hier bis auf die Knochen blamiere.
    Warum kann man nicht einfach per Mail Kontakt aufnehmen?
    oder besser noch telefonieren oder wenn die Entfernung es
    zulässt trifft man sich einfach und bespricht alles.
    Ich will auch gern jede Frage beantworten, am liebsten würde
    ich dieses Projekt komplett als Job ausschreiben aber ich habe
    Probleme die Anforderungen und dazugehörigen Fragen zu kommunizieren.
    Bestimmt ist dieses per Mail oder Sprache einfacher.
    Also wer (jetzt noch)Interesse hat einfach melden, oder wie kommt
    man sonst zusammen? Liebe Grüße jueppes



  • Hallo, auch wenn ich mich hier bis auf die Knochen blamiere.
    Warum kann man nicht einfach per Mail Kontakt aufnehmen?
    oder besser noch telefonieren oder wenn die Entfernung es
    zulässt trifft man sich einfach und bespricht alles.

    du hast z.B. bisher 1Km Prosatext (über Tage) geschrieben aber keine einzige meiner Fragen
    wenigstens mit "Ja" oder "Nein" beantworten, warum soll ich mehr Zeit als notwendig
    investieren wenn du dazu schon kein Bock hast - oder lieber Prosatext ohne relevanz schreibst

    am liebsten würde ich dieses Projekt komplett als Job ausschreiben

    dafür muss man trotzdem wissen was die IST-Situation ist

    die Fragen nochmal - ein LETZTES mal:
    1. Hast du eine DOS-Exe? (JA/NEIN)
    2. Hast du ein LAUFENDES System(z.B. unter DOS) das mit dieser DOS-Exe mit deiner Hardware kommuniziert? (JA/NEIN)
    3. Hast du eine Ahnung mit welchen Kompiler die DOS-Exe gebaut wurde? (JA/NEIN/Welcher)
    4. Ist der Quelltext vollständig mit Libs usw. (JA/NEIN/keine Ahnung)
    5. Was ist das für ein Gerät mit dem du sprechen willst? (Hersteller/Marke/Typ)
    6. Warum kannst/willst du die DOS-Exe nicht unter einem echten DOS laufen lassen? (kein DOS-System, kein Bock, unschön weil...,)
    7. Ist das Protokoll irgendwie zeitkritisch - manche alte Hardware ist das sehr wackelig(JA/NEIN/Keine Ahnung)

    am einfachsten ist es immer zuerst das Original-Programm laufen zu lassen - dann hat man
    eine funktionierende Referenz auf die man sich beziehen kann - erst dann fängt man an zu portieren

    oder wie kommt man sonst zusammen?

    alle deine Dateien/eMail-Text (als EIN zip) auf fastshare.org (da brauchst du keinen Account)
    und den Download-Link an die angegebene eMail-Adresse (ist eine geschütze eMail-Adresse)

    ich schau es mir am Wochenende mal an



  • Guten Morgen , so machen wird das.
    Die Zip Datei wird gleich hochgeladen.
    Werde übers Wochenende den Rechner nicht aus dem Auge lassen.
    Kein Prosa mehr, nur noch Fakten.


Anmelden zum Antworten