J'ai essayé de revenir au codage pendant un moment, alors j'ai pensé que je commencerais avec un simple SDL, maintenant, sans le fichier i/o, Cela compile bien, mais quand je jette le code stdio, il commence à lancer des erreurs. Ce dont je ne suis pas sûr, je ne vois aucun problème avec le code lui-même, cependant, comme je l'ai dit, je pourrais aussi bien être un débutant, et je me suis dit que je viendrais ici avec quelqu'un avec un peu plus d'expérience ce genre de chose à regarder.Problèmes avec le compilateur sur VC++ 2008 Express, le code apparemment correct génère des erreurs
Je suppose que ma question se résume à: "Pourquoi ne pas compiler sous Microsoft Visual C++ 2008 Express?"
J'ai joint le journal des erreurs en bas de l'extrait de code. Merci d'avance pour votre aide.
#include "SDL/SDL.h"
#include "stdio.h"
int main(int argc, char *argv[])
{
FILE *stderr;
FILE *stdout;
stderr = fopen("stderr", "wb");
stdout = fopen("stdout", "wb");
SDL_Init(SDL_INIT_EVERYTHING);
fprintf(stdout, "SDL INITIALIZED SUCCESSFULLY\n");
SDL_Quit();
fprintf(stderr, "SDL QUIT.\n");
fclose(stderr);
fclose(stdout);
return 0;
}
erreurs réelles signalées:
main.cpp(6) : error C2090: function returns array
main.cpp(6) : error C2528: '__iob_func' : pointer to reference is illegal
main.cpp(6) : error C2556: 'FILE ***__iob_func(void)' : overloaded function differs only by return type from 'FILE *__iob_func(void)'
c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(132) : see declaration of '__iob_func'
main.cpp(7) : error C2090: function returns array
main.cpp(7) : error C2528: '__iob_func' : pointer to reference is illegal
main.cpp(9) : error C2440: '=' : cannot convert from 'FILE *' to 'FILE ***'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
main.cpp(10) : error C2440: '=' : cannot convert from 'FILE *' to 'FILE ***'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
main.cpp(13) : error C2664: 'fprintf' : cannot convert parameter 1 from 'FILE ***' to 'FILE *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
main.cpp(15) : error C2664: 'fprintf' : cannot convert parameter 1 from 'FILE ***' to 'FILE *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
main.cpp(17) : error C2664: 'fclose' : cannot convert parameter 1 from 'FILE ***' to 'FILE *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
main.cpp(18) : error C2664: 'fclose' : cannot convert parameter 1 from 'FILE ***' to 'FILE *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Utilisez 'freopen' pour rediriger' stdout' et vos amis. –
Les en-têtes standard doivent être entourés de supports angulaires: ''. Deuxièmement, en C++, il devrait être: ''. Enfin, quel est le problème avec '' et amis? Ils se sentent tristes. :( –
GManNickG
@GMan: +1 pour "Ils se sentent tristes." * Bill rit * –