Hola, estoy empezando con visual c++ autodidácticamente. He hecho un mini programa en el cual se puede elegir el nombre de un color de una lista o añadir un nuevo color a la lista. Para ello guardo el nuevo color en un archivo. He utilizado el siguiente código
void CMyFileDlg::OnSave()
{
// TODO: Add your control notification handler code here
if(m_NewColor)
{
//-------------------------------------------------------------
// Writing the New Colors on the file color.dat
//-------------------------------------------------------------
//Creating a storing archive of type CFile / CStdioFile: file
CStdioFile file;
//Opening the file
file.Open("color.dat", CFile::modeCreate | CFile::modeNoTruncate | CFile::modeReadWrite | CFile::typeBinary);
file.SeekToEnd(); // Moving the cursor to the End of the file.
UpdateData(TRUE); // transferring the content of the edit boxes to the variables
//Writing the context of each variable
//file.WriteString(m_IdColor);
//file.WriteString("\b ");
file.WriteString(m_ColorName);
file.WriteString("\n \n");
//Closing the file
file.Close();
UpdateData(FALSE);
AfxMessageBox("Datos guardados correctamente!");
}
}
y funciona correctamente si solamente escribo el nombre del color pero si quiero escribir también un número para cada color a través de la variable int m_IdColor me genera el siguiente error:
error C2664: 'CStdioFile::WriteString' : cannot convert parameter 1 from 'int' to 'LPCTSTR'
¿Cómo puedo hacer para que me escriba en el archivo la variable int m_IdColor? Quiero además que se genere un espacio entre las dos variables m_IdColor y m_ColorName. Si utilizo file.WriteString("\b"); entonces me produce entre los valores de las dos variables. Entonces ¿Como crearíais un espacio entre los dos datos de las dos variables?
En la función Open indico el nombre del archivo a abrir “color.dat” que lo genera en el mismo directorio donde se encuentra el ejecutable, ¿se puede indicar también el directorio donde se encuentra? ¿Se puede también dar la opción de elegir el directorio donde crear el archivo? Si es así ¿cómo se haría?