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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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