MULTIMEDIA, Video digital, Grabación, Diseño gráfico, Diseño web, Programación > Webmasters - Diseño Web - Programación - Diseño gráfico
...Diferencias C bajo Linux/C bajo Windows(C Basico)
jirho:
...por supuesto que si amigo, no te preocupes que sera lo mas detallado posible...esta un poco descuidado por que etoy en parciales y ya son finales...los mas duros entonces me toca meterme con todo...ya veras como avzanza esto... :wink: ...
BuHo:
Igualmente, yo estoy hasta arriba. A ratos escribo lo siguiente que será sobre tipos y manejo básico. Es algo bastante corto y sencillo pero como no tengo tiempo lo estoy escribiendo a ratos.
Un saludos.
jirho:
...Si amigos...aunque tal vez "no crean", apezar de que vivimos en los dos lados del mundo...los parciales nos cojen por igual, por eso cuando se apaga un poco el foro es porque todos estamos llenos de estudio y de trabajo, pero eso es pasajero y ya comenzamos de nuevo... :wink: ....
ALP:
un ejemplo:
LINUX:
--- Código: ---
#include <stdio.h>
int main()
{
printf("Hola mundo");
return 0;
}
--- Fin del código ---
WINDOWS:
--- Código: ---
#include <windows.h>
LRESULT CALLBACK GestWndPrueba(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int)
{
MSG msg;
HWND hWnd;
WNDCLASS wc ={0};
wc.hInstance = hInst;
wc.lpszClassName = "wnd_prueba";
wc.lpfnWndProc = GestWndPrueba;
wc.style = CS_VREDRAW | CS_HREDRAW;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
if (!RegisterClass(&wc)) {
MessageBox(NULL, "No puedo registar el tipo de ventana", "Error", MB_ICONSTOP);
return 1;
}
hWnd = CreateWindow("wnd_prueba", "Ventana de prueba",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, (HMENU)NULL, hInst, NULL);
if (hWnd == NULL) {
MessageBox(NULL, "No puedo crear la ventana", "Error", MB_ICONSTOP);
return 1;
}
ShowWindow(hWnd, SW_SHOW);
UpdateWindow(hWnd);
while (GetMessage(&msg, (HWND)NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (msg.wParam);
}
LRESULT CALLBACK GestWndPrueba(HWND hWnd, UINT messg, WPARAM wParam, LPARAM lParam)
{
RECT rc;
PAINTSTRUCT ps;
switch(messg) {
case WM_PAINT:
BeginPaint(hWnd, &ps);
GetClientRect(hWnd, &rc);
DrawText(ps.hdc, "Hola mundo", -1, &rc, DT_CENTER|DT_VCENTER|DT_SINGLELINE);
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
}
return DefWindowProc(hWnd,messg,wParam,lParam);
}
--- Fin del código ---
como veis... en windows hace falta algo más que un printf para hacer una sencilla aplicación. En linux, si programamos en modo gráfico (léase gtk, kde...) necesitaremos más de 4 líneas para crear una simple ventana; sin embargo, disponemos de muchas más funciones, clases y herramientas que nos ayudan y simplifican la vida a la hora de crear una aplicación real.
Una vez que se comprendan cuatro nociones sobre el entorno en el que programamos, no es difícil, sólo es cuestión de ponerse.
P.D.- El ejemplo de windos está hecho con el API Win32 (sin mfc, owl...)
Un saludo
jirho:
... :oops: me refiero a C amigo... :oops:
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa