Hey. Wollte mir ne kleine log Funktion schreiben. Die soll halt nur eine Datei öffnen und dort Tet reinschreiben der vorher der Funktion übergeben werden soll. Wenn ich die Funktion direkt als Funktion in main schreibe ist das kein Problem. Aber sobald ich die Funktion auslager gibt er mir nen Fehler aus.
Habe nun mal die Funktion in eine Klasse gesteckt. Und schon wieder fast der gleiche Fehler. Von der Formulierung halt nur darauf bezogen das es diesmal eine Klasse ist.
Der Fehler:
|
Quellcode
|
1
2
|
main.obj : error LNK2005: "public: int __thiscall cLog::log(char * const)" (?log@cLog@@QAEHQAD@Z) ist bereits in class.obj definiert.
MSVCRTD.lib(crtexew.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_WinMain@16" in Funktion "___tmainCRTStartup".
|
Der Code ist:
class.cpp:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include <iostream>
#include <windows.h>
//log
class cLog
{
public:
int log(char cString[255]);
};
int cLog::log(char cString[255])
{
FILE* pfLog;
fopen_s(&pfLog,"log.txt","a");
if(cString == "")
{
fputs("!\nEs wurde kein Wert übergeben!\n",pfLog);
fclose(pfLog);
return 1;
}else{
fputs(cString,pfLog);
}
fclose(pfLog);
return 0;
}
|
und main.cpp:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#include <iostream>
#include <windows.h>
#include "class.cpp"
//using namespace std;
/*
int log(char cString[100])
{
FILE* pfLog;
fopen_s(&pfLog,"log.txt","a");
if(cString == "")
{
fputs("!\nEs wurde kein Wert übergeben!\n",pfLog);
fclose(pfLog);
return 1;
}else{
fputs(cString,pfLog);
}
fclose(pfLog);
return 0;
}
*/
void main()
{
cLog logfunc;
logfunc.log("test");
}
|
mfg Schorsch