fopen oder fopen_s
-
Hallo,
ich habe es nun endlich geschafft Visual c++ 2007 Express zu installieren und wollte ein kleines Programm schreiben (nur so zum Test)
#include <windows.h> #include <iostream> int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, char* pszCmdLine, int iCmdShow) { FILE *fpl; fpl = fopen ("r.txt","w"); fprintf (fpl,"lol"); fclose(fpl); }
Jetzt bekomme ich aber folgende Warnung:
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.'Also ich soll fopen_s benutzen, weil die sicherer ist. Soweit habe ich das verstanden.
Dazu habe ich jetzt aber 2 Fragen:
1. Wo in der MSDN finde ich was zu fopen_s? (ich habe gesucht und gegoogled
aber keine treffer in der MSDN zu fopen_s gefunden. Ich finde dort selten was ich suche)
2. Wenn man doch die includes jetzt ohne .h schreiben soll weil diese Funktionen sicherer sind, warum gibt es kein windows sonder nur windows.h?
(windows kann nicht includiert werden, weil keine solche Datei gefunden wird.
Bitte keine Witze in die Richtung: "Windows ist immer noch unsicher")
-
Andreas XXL schrieb:
Hallo,
ich habe es nun endlich geschafft Visual c++ 2007 Express zu installieren und wollte ein kleines Programm schreiben (nur so zum Test)
#include <windows.h> #include <iostream> int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, char* pszCmdLine, int iCmdShow) { FILE *fpl; fpl = fopen ("r.txt","w"); fprintf (fpl,"lol"); fclose(fpl); }
Jetzt bekomme ich aber folgende Warnung:
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.'Also ich soll fopen_s benutzen, weil die sicherer ist. Soweit habe ich das verstanden.
Ich hab' noch eine bessere Alternative: Schmeiss das FILE weg und arbeite mit fstream's stattdessen - die sind wirklich sicher.
2. Wenn man doch die includes jetzt ohne .h schreiben soll weil diese Funktionen sicherer sind, warum gibt es kein windows sonder nur windows.h?
Das hat nichts mit "sicherer" zu tun. Das ANSI-Kommitee hat einfach festgelegt, daß die Header der C++ Standardbibliothek keine .h Endung haben. Das betrifft jedoch keine Fremdheader (wie <windows.h>).
Bitte keine Witze in die Richtung: "Windows ist immer noch unsicher")
Wieso nicht? Stimmt doch
-
??
gleich das erste google ergebnis ist doch schon die loesung ?!