En este caso espec�fico, esto significa una de dos cosas: Est�s intentando escribir una aplicaci�n Win32 GUI (o una aplicaci�n no-consola) y accidentalmente la est�s compilando como Console aplication... � realmente est�s escribiendo y compilando una aplicaci�n de consola pero no escribiste o no compilaste apropiadamente una funci�n main().
Generalmente el primero es el error m�s com�n, si especificas como tipo de proyecto en VC++, Win32 Console, cuando crees tu proyecto obtendr�s este error. Tambi�n puedes obtener este error si intentas compilar desde la linea de comandos usando BC++ y olvidas especificar los par�metros correctos para decirle al compilador que haga una aplicaci�n Win32 GUI en lugar de una aplicaci�n de consola, la cual es la especificada por default.
Si est�s el compilador de l�nea de comando, BC++, debes usar -tW para especificar que se trata de una aplicaci�n Windows.
VC++ (y la mayor�a de los compiladores) autom�ticamente compilan un archivo con la extensi�n .cpp cuando se trata de c�digo C++ y con la extensi�n .c cuando se trata de c�digo C. Si has agregado el c�digo del tutorial a un archivo .cpp, est� es la raz�n exacta para obtener este error.
Si est�s compilando c�digo que no sea de este tutorial, no puedo garantizarte que sea correcto y por lo tanto puede ser un error que proviene de otro lado. Debes determinar si es seguro convertir el valor para remover el error o si realmente est�s intentando que una variable sea algo que no es.
Por ejemplo, esto funcionar�a en C:
HBITMAP hbmOldBuffer = SelectObject(hdcBuffer, hbmBuffer);
Pero en C++ necesita un cast
HBITMAP hbmOldBuffer = (HBITMAP)SelectObject(hdcBuffer, hbmBuffer);
afxres.h a los archivos de recursos a�n cuando no estamos usando un proyecto MFC y este archivo s�lo puede ser instalado si se instala MFC. Este particular archivo realmente no es necesario, por lo tanto para corregir el error podemos editar el archivo .rc en el block de notas y reemplazar ambas apariciones de afxres.h con winres.h (observa que debe haber dos apariciones y debes cambiar ambas).
Si agregas un Common Control a un di�logo y �ste falla al intentar mostrarlo, seguramente ha falle la llamada antes que ejecutes el di�logo . El mejor lugar para realizar esta llamada es en WinMain(). Si realizamos la llamada en WM_INITDIALOG, es demasiado tarde debido a que el di�logo fallar� antes de que llegue a este punto y por lo tanto nunca ser� llamado.
Algunas personas y algunas documentaciones pueden decirte que InitCommonControls() est� obsoleto y que debes usar InitCommonControlsEX(), pero eres libre de elegir, InitCommonControls() es mas simple y no hay nada malo en usarla.
Versi�n en Espa�ol: FedericoPizarro - 2003