Code als C im C++-Compiler interpretieren
-
Wo? Ich kenne mich nicht so gut mit dem Compiler aus. *sucht*
-
lass mal den unsinn mit dem extern "C" und poste die ersten paar fehler + die entsprechenden codezeilen
-
lade dir das mingw-dev-studio, dann *.c statt *.cpp und compile: oder besorg dir einfachen einen c-compiler
-
enno-tyrant schrieb:
lade dir das mingw-dev-studio
wo kriegt man das her?
void Init_Timer(void) /* Interrupt-Timer initialisieren */ { #define MODEMASK 0xE unsigned int pitstart, pitstop; long pitdiff; unsigned char mode; outp(0x43, 0xE2); <---------- ZEILE 63 !!! mode = ((inp(0x40) & MODEMASK) >> 1); if (mode == 3) { Pitfaktor = 2; } else if (mode == 2) { Pitfaktor = 1; } else // Zeitabsch„tzung --> fr PC XT gedacht } { // da beim PC XT Status nicht existiert } pitstart = Get_Timer(); delay(14); pitstop = Get_Timer(); if (pitstart < pitstop) { pitdiff = pitstart+(65535-pitstop); }
c:\dokumente und einstellungen\besitzer\desktop\smc_dv2a\smc_c\smcmot.c(63) : warning C4013: 'outp' undefiniert; Annahme: extern mit Rueckgabetyp int c:\dokumente und einstellungen\besitzer\desktop\smc_dv2a\smc_c\smcmot.c(64) : warning C4013: 'inp' undefiniert; Annahme: extern mit Rueckgabetyp int c:\dokumente und einstellungen\besitzer\desktop\smc_dv2a\smc_c\smcmot.c(77) : warning C4013: 'delay' undefiniert; Annahme: extern mit Rueckgabetyp int
Der Quellcode müsste eigentlich stimmen. Er entstammt einer Beilage zu einer Schrittmotorsteuerkarte SMC1500 und müsste funktionsfähig sein. Ist halt nur in C geschrieben. Die anderen Fehler sind ähnlich.
-
Kann ich jemanden einmal die Quelldatei schicken? Ich komme echt nicht weiter...
-
du hast den header nicht eingebunden in dem 'outp' etc. stehen
#include <irgendwas.h>
-
Hallo,
anhand der Fehler sieht man, dass er den Code bereits im C-Modus kompiliert. In C++ ist das Fehlen einer Funktionsdeklaration ein Fehler. Da wird nichts implizit angenommen.
Was dir fehlt sind Deklarationen (und wahrscheinlich auch Definitionen) von outp und co.
Falls du unter Win arbeitest, versuch's mal mit #include <conio.h>
-
4 Warnungen weniger immerhin. Das Problem ist, dass ich die Quelldatei nicht selbst geschrieben habe, weil sie wie gesagt nur Beilage war. Es gab nur 2 Dateien in C und das wars. Leider ist der Code zu lang, um ihn hier "kurz" abzudrucken.
-
also da fehlt einiges:
warning: implicit declaration of function:
Get_Timer;
inp;
outp;
delay:undefined reference to `outp'
syntax-fehler:
} (am ende)
-
hmm, die funktionen erinnern mich sehr stark an meinen alten borland c++
umgebung version 3.1.
bei dem programm handelt es sich offensichtlich auch um ein MS DOS programm.
das wirst du wohl vermutlich portieren müssen.conio.h bringt dir nichts.
ich bin mir auch nicht sicher ob man in win überhaupt noch ports direkt ansprechen kann. (das was inp und outp macht)viele grüße
Fischi[EDIT] du könntest dir auch den alten bcc holen und versuchen dein
programm in der dos umgebung laufen zu lassen.
-
Fischi schrieb:
ich bin mir auch nicht sicher ob man in win überhaupt noch ports direkt ansprechen kann. (das was inp und outp macht)
Unter NT basierten Wins auf User Level jedenfalls nicht.