Problem mit headern
-
Hallo,
ich will andere c-Dateien in mein Projekt einbinden, leider wird das irgendwie nichts,
hier mal meine Dateien:
#ifndef TEST_H #define TEST_H #include <stdio.h> #include <windows.h> extern int check(void); #endif#include <stdio.h> #include <windows.h> #include <test.h> int WinMain( HINSTANCE hInstance, HINSTANCE hInstance_2, LPSTR CmdLine, int Show ) { check(); return 0; }test.c
[cpp]
#include <test.h>
#include <windows.h>
#include <stdio.h>int check (void)
{
int a=1;
int b=0;
FILE *file;file=fopen("check.txt","r+");
if (file==NULL)
{
file=fopen("check.txt","w+");
fprintf (file,"%i",a);
fclose(file);
return 0;
}else
{
fscanf(file,"%i", &b);
b=b+1;
fclose(file);file=fopen("check.txt","w+");
fprintf(file,"%i",b);
fclose(file);
return b;
}return 0;
}
-
Mo89 schrieb:
leider wird das irgendwie nichts
Eigentlich schade.
Möglicherweise hilft es, "test.h" anstatt <test.h> einzubinden. Ansonsten wirst du nur weiterkommen, wenn du uns die Fehlermeldungen deines Compilers oder Linkers mitzuteilen geruhst.
-
Hallo!
Inzwischen habe ich folgendes probiert:
check auch in der c datei extern deklarieren und " "'s machen beim includen
Hier mal die Fehlermeldungen:
POLINK: error: Unresolved external symbol '_check'.
POLINK: fatal error: 1 unresolved external(s).
-
Laß das "extern" in beiden Fällen einfach weg. Bei Funktionsdeklarationen wird das implizit angenommen.
Damit der Linker die Funktionsdefinition findet, mußt du ihm natürlich beide Objektdateien übergeben. Wie es scheint, übergibst du ihm das Modul test nicht.
Btw, das gehört eher ins ANSI-C-Forum.