Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

11

09.03.2006, 22:54

dehein2
Halte den Mauscursor drüber

12

09.03.2006, 23:05

ja, das wusste ich, bin aber noch anfänger und kann dann damit nciht so wirklich viel anfangen. aus welchem grund geht das denn nicht wie es im buch steht? :)

wenn ich dir Orignal Dateien (von der CD) kompileire meckert er nix, :((((

13

10.03.2006, 09:38

!?!

also hier nochmal der gesammte Fehlercode:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
m:\workspace\visual studio 2005\projects\class_logfile\class_logfile\logfile.cpp(21) : warning C4996: 'fopen' was declared deprecated
        c:\programme\microsoft visual studio 8\vc\include\stdio.h(234) : see declaration of 'fopen'
        Message: 'This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
m:\workspace\visual studio 2005\projects\class_logfile\class_logfile\logfile.cpp(34) : warning C4996: 'fopen' was declared deprecated
        c:\programme\microsoft visual studio 8\vc\include\stdio.h(234) : see declaration of 'fopen'
        Message: 'This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
m:\workspace\visual studio 2005\projects\class_logfile\class_logfile\logfile.cpp(105) : error C2664: 'vsprintf' : cannot convert parameter 1 from 'TCHAR [1024]' to 'char *'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
m:\workspace\visual studio 2005\projects\class_logfile\class_logfile\logfile.cpp(108) : error C2664: 'void CLogfile::Textout(const char *)' : cannot convert parameter 1 from 'TCHAR [1024]' to 'const char *'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
m:\workspace\visual studio 2005\projects\class_logfile\class_logfile\logfile.cpp(119) : error C2664: 'vsprintf' : cannot convert parameter 1 from 'TCHAR [1024]' to 'char *'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
m:\workspace\visual studio 2005\projects\class_logfile\class_logfile\logfile.cpp(122) : error C2664: 'void CLogfile::Textout(int,const char *)' : cannot convert parameter 2 from 'TCHAR [1024]' to 'const char *'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
m:\workspace\visual studio 2005\projects\class_logfile\class_logfile\logfile.cpp(133) : error C2664: 'vsprintf' : cannot convert parameter 1 from 'TCHAR [1024]' to 'char *'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
m:\workspace\visual studio 2005\projects\class_logfile\class_logfile\logfile.cpp(136) : error C2664: 'void CLogfile::Textout(int,bool,const char *)' : cannot convert parameter 3 from 'TCHAR [1024]' to 'const char *'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast


da muss doch jetzt bei mir nen unterschied zum buch sien, weil der code von der cd kompiliert wird obwohl der fopen nutz!?!

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

14

10.03.2006, 13:46

das wird im Buch noch anders gemacht, weil es eine ältere Visual C++ Version ist. Steht ja auch in der Warnung: Diese Funktion ist veraltet.. Gib einfach in der Hilfe den Namen der neuen Funktion ein, dann wird alles et was besser erklärt.

15

10.03.2006, 13:53

Die neuen Parameter heißen so:

errno_t fopen_s(
FILE** pFile,
const char *filename,
const char *mode
);

und die alten so:

FILE *fopen(
const char *filename,
const char *mode
);

Die alte Funktion hat die FILE - Struktur zurückgeliefert und in der neuen Funktion übergibt man die FILE - Struktur.
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

riCo

Treue Seele

Beiträge: 165

Beruf: Student

  • Private Nachricht senden

16

10.03.2006, 15:00

Welchen Zusatz bietet die Securefunktion? Also was kann fopen_s was fopen nicht kann? Sorry für die vielleicht stümperhafte Frage. :-)
Wir leben alle unter dem Sternenhimmel, aber wir haben nicht alle den gleichen Horizont.

17

10.03.2006, 15:01

das heisst doch dann, das ich die FILE struktur schon vorher irgendwie erstelen muss, oder? wie mann ich das denn machen?

wenn ich das richtig verstanden habe ist die variable "FILE *m_Logfile" doch eine varibale die einen poniter speichert der darauf zeigt, wo sich diese FILE variable (die angibt was mit der datei ist?) gespeichert ist oder?

und in dem buch erstellt das fopen doch dann die FILE variabelund gibt die adresse an m_Logfile zurück - oder verstehe ich das total falsch?

so, un nun möchte das fopen_s ja die FILE variable (oder den pointer dahin?) haben,oder? - aber wie muss ich dass dann erstellen?

18

10.03.2006, 16:08

Du übergibst da ja den pointer m_Logfile. Und nach dem Aufruf der Funktion zeigt der Pointer auf die Ausgefüllte FILE - Struktur.
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

Anonymous

unregistriert

19

10.03.2006, 18:36

Zitat von »"riCo"«

Welchen Zusatz bietet die Securefunktion? Also was kann fopen_s was fopen nicht kann? Sorry für die vielleicht stümperhafte Frage. :-)
Welchen Sinn wird wohl eine Secure Function habe gegenüber einer normalen? Na? Sie ist in einem Punkt sicherer: Pufferüberlauf.

20

10.03.2006, 19:37

tut mir ja leid, wenn cih hier so doof fragem aber wenn ich nun folgendes schreiben:

C-/C++-Quelltext

1
fopen_s(m_Logfile, LogName, "w");


bekomme ich folgende meldung:

Quellcode

1
: error C2664: 'fopen_s' : cannot convert parameter 1 from 'FILE *' to 'FILE **'


was ist denn ein FILE** ? :)

Werbeanzeige