Visual C++, ¿le herré al bajarmelo?

Iniciado por Draklit, 29 Mayo 2010, 01:06 AM

0 Miembros y 2 Visitantes están viendo este tema.

Draklit

Recién empiezo, usaba Turbo C++ 4.5 y me dijeron que me actualice para evitar inconvenientes con standares y eso, entonces me bajé Visual C++ Express, pero resulta que no funciona nada de lo que se supone funcione, ¿le herré al bajarmelo?.

O sea, pongo aplicación de cónsola win32, y no funciona "#include <iostream>", de hecho, el encabezado autogenerado es mucho más raro que lo que solía tener entendido por encabezado:
Esto cuando probé con seleccionar simplemente aplicación:
// dadsa.cpp: define el punto de entrada de la aplicación.
//

#include "stdafx.h"
#include "dadsa.h"

#define MAX_LOADSTRING 100

// Variables globales:
HINSTANCE hInst; // Instancia actual
TCHAR szTitle[MAX_LOADSTRING]; // Texto de la barra de título
TCHAR szWindowClass[MAX_LOADSTRING]; // nombre de clase de la ventana principal

// Declaraciones de funciones adelantadas incluidas en este módulo de código:
ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);

int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);

// TODO: colocar código aquí.
MSG msg;
HACCEL hAccelTable;

// Inicializar cadenas globales
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadString(hInstance, IDC_DADSA, szWindowClass, MAX_LOADSTRING);
MyRegisterClass(hInstance);

// Realizar la inicialización de la aplicación:
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}

hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_DADSA));

// Bucle principal de mensajes:
while (GetMessage(&msg, NULL, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}

return (int) msg.wParam;
}



//
//  FUNCIÓN: MyRegisterClass()
//
//  PROPÓSITO: registrar la clase de ventana.
//
//  COMENTARIOS:
//
//    Esta función y su uso son sólo necesarios si desea que el código
//    sea compatible con sistemas Win32 anteriores a la función
//    'RegisterClassEx' que se agregó a Windows 95. Es importante llamar a esta función
//    para que la aplicación obtenga iconos pequeños bien formados
//    asociados a ella.
//
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;

wcex.cbSize = sizeof(WNDCLASSEX);

wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_DADSA));
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = MAKEINTRESOURCE(IDC_DADSA);
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));

return RegisterClassEx(&wcex);
}

//
//   FUNCIÓN: InitInstance(HINSTANCE, int)
//
//   PROPÓSITO: guardar el identificador de instancia y crear la ventana principal
//
//   COMENTARIOS:
//
//        En esta función, se guarda el identificador de instancia en una variable común y
//        se crea y muestra la ventana principal del programa.
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;

   hInst = hInstance; // Almacenar identificador de instancia en una variable global

   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

   if (!hWnd)
   {
      return FALSE;
   }

   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);

   return TRUE;
}

//
//  FUNCIÓN: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  PROPÓSITO: procesar mensajes de la ventana principal.
//
//  WM_COMMAND : procesar el menú de aplicación
//  WM_PAINT : pintar la ventana principal
//  WM_DESTROY : enviar un mensaje de finalización y volver
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;

switch (message)
{
case WM_COMMAND:
wmId    = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// Analizar las selecciones de menú:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: agregar código de dibujo aquí...
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}

// Controlador de mensajes del cuadro Acerca de.
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam);
switch (message)
{
case WM_INITDIALOG:
return (INT_PTR)TRUE;

case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
}
break;
}
return (INT_PTR)FALSE;
}


Y esto cuando pongo aplicacion de cónsola win 32:
//Proyecto.cpp: define el punto de entrada de la aplicación de consola.
//

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}


invisible_hack

Bájate el DevC++ ;)

Código (cpp) [Seleccionar]

#include "stdafx.h"
#include "dadsa.h"


Esas cabeceras dudo que existan... :-\

¿Te salieron automáticamente al crear el proyecto o algo?

"Si no visitas mi blog, Chuck te dará una patada giratoria"

Draklit

Cita de: invisible_hack en 29 Mayo 2010, 01:34 AM
Bájate el DevC++ ;)

Código (cpp) [Seleccionar]

#include "stdafx.h"
#include "dadsa.h"


Esas cabeceras dudo que existan... :-\

¿Te salieron automáticamente al crear el proyecto o algo?



Oks me bajo el DevC++, y si, es una opcion (Aplicar cabezal autocompilado o algo así, después me fijo bien)

leogtz

Cita de: Bru2712 en 29 Mayo 2010, 02:20 AM
Cita de: invisible_hack en 29 Mayo 2010, 01:34 AM
Bájate el DevC++ ;)

Código (cpp) [Seleccionar]

#include "stdafx.h"
#include "dadsa.h"


Esas cabeceras dudo que existan... :-\

¿Te salieron automáticamente al crear el proyecto o algo?



Oks me bajo el DevC++, y si, es una opcion (Aplicar cabezal autocompilado o algo así, después me fijo bien)

No te bajes eso, hiciste bien en bajaste el Visual C++, es el mejor IDE y compilador para Windows, así que aprende a usarlo.

Tu problema es solo que no sabes cómo usarlo.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Littlehorse

stdafx.h site:foro.elhacker.net

Crea un proyecto vació en caso que no utilices headers precompilados.
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

Draklit

// Insertar nombre.cpp: archivo de proyecto principal.

#include "stdafx.h"

using namespace System;

int main(array<System::String ^> ^args)
{
    Console::WriteLine(L"Hola a todos");
    return 0;
}


No quiero decir algo ignorante pero me voy a arriesgar: Esto no es C++, al menos no lo parece.
Eso parece C#, y encima no es si quiera C#, o sea, no creo que realmente sea C++ si no usa iostream, ni cout, ni cin, que es lo que todos los manuales enseñan.

Littlehorse

CitarNo quiero decir algo ignorante pero me voy a arriesgar: Esto no es C++, al menos no lo parece.

Efectivamente, no es estándar C++. Es C++/CLI.

Estas muy perdido con Visual Studio así que te recomiendo que busques una guía sobre el antes de proseguir. Es un IDE demasiado amplio como para aprender a usarlo tocando botones al azar, si queres hacelo, pero como recomendación te diría que busques una guía que explique como mínimo los pasos básicos (Creaciones de proyectos, por ejemplo)

Saludos
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

Horricreu

Es un curso de C/C++ en Youtube y, en el primer vídeo te enseña a crear un proyecto con Visual Studio 2008:

http://www.youtube.com/watch?v=KaXDZ7uzLIo

No hace falta saber inglés  ;)

Saludos  :P

Draklit

Cita de: Littlehorse en 29 Mayo 2010, 05:58 AM
CitarNo quiero decir algo ignorante pero me voy a arriesgar: Esto no es C++, al menos no lo parece.

Efectivamente, no es estándar C++. Es C++/CLI.

Estas muy perdido con Visual Studio así que te recomiendo que busques una guía sobre el antes de proseguir. Es un IDE demasiado amplio como para aprender a usarlo tocando botones al azar, si queres hacelo, pero como recomendación te diría que busques una guía que explique como mínimo los pasos básicos (Creaciones de proyectos, por ejemplo)

Saludos

¿Tiene alguna ventaja/desventaja sobre el standar?