Conversion de FILE* vers fstream
Bonjour,
j'ouvre un fichier avec l'API windows (donc je récupère un HANDLE), et je cherche à avoir un fstream.
J'ai compris que je devais passer par plusieurs conversions, et je coince un peu.
Code:
1 2 3 4
| int h = _open_osfhandle((long) GetStdHandle(STD_OUTPUT_HANDLE), 0);
FILE* file = _fdopen(h, "w");
static StandardOutStream stdout_object(file); |
Il me manque le lien de FILE* vers fstream.
Sauf si il y a une fonction pour passer du descripteur de fichier int (de C) vers fstream directement.
J'avais essayé ça :
Code:
1 2 3 4
| fstream file;
file.attach(_open_osfhandle((long) GetStdHandle(STD_OUTPUT_HANDLE), 0);
static StandardOutStream stdout_object(file); |
Mais j'ai une erreur à la compilation.
Code:
1 2 3
| D:\Lecourt\workspace\elm\src\system_SystemIO.cpp:81:1: error: 'fstream' does not name a type
D:\Lecourt\workspace\elm\src\system_SystemIO.cpp:82:1: error: 'file' does not name a type
D:\Lecourt\workspace\elm\src\system_SystemIO.cpp:84:40: error: 'file' was not declared in this scope |