Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Oblivi0n

#501
Muchas gracias, errores tontos los mios  :xD

Funcionó!
#502
Buenas gente.

Estoy haciendo un "editor hexadecimal" bastante basico, el caso es que quiero que habra cualquier archivo del disco duro, y para ello tengo este fragmento de codigo
void Initialize_File()
{
File.file = fopen(File.path,"rb");

if(File.file != NULL)
{
printf("se pudo abrir el archivo\n");
}
else if(File.file == NULL)
{
printf("No se pudo\n");
}
system("PAUSE");
}


(los system("PAUSE") son para ir haciendo pruebas)

File.path es la direccion del archivo, (que ingrese previamente), este metodo ya lo utilice mas veces y me funcionaba, sin embargo hoy no me abre los archivos, dejo tambien el codigo que obtiene la ruta.
void GetPath()
{
char path[64];
File.path_len = 0;
int i = 0;
printf("Introduce la ruta\n");
gets(path);
while(path[i] != '\0')
{
File.path_len++;
i++;
}
File.path = (char*) malloc(File.path_len * sizeof(char));
File.path = path;
printf("La cadena es %s y mide %d caracteres",File.path,File.path_len);
system("PAUSE");
}


Tambien pongo la estructura desde en la que se guardarian todos los datos
struct disas_file{
char *path;
int path_len;
int size;
FILE *file;
char *data;
};



Gracias de antemano!
#503
tienes que usar WinAPI

en el bucle de mesajes, pones un

case WM_QUERYENDSESSION:
code
break;


y ya

el bucle de mensajes seria algo asi

LRESULT CALLBACK WindowsProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch(msg)                //Analizamos el mensaje que recibe como parametro la función
    {
        case WM_PAINT:         //En caso que ocurra WM_PAINT
            HDC hDC;   //Creamos un dispositivo de contexto (para poder dibujar)
            //Contiene información que puede ser usada para pintar el área de cliente de una ventana por la propia aplicación.
            PAINTSTRUCT ps;
            hDC = BeginPaint(hwnd, &ps);  //Prepara la ventana para dibujar sobre ella
            RECT  rectangulo;      //Creamos un rectangulo en la ventana para dibujar sobre el
            GetClientRect(hwnd, &rectangulo);   //Agregamos el rectangulo a la ventana
            //Función que dibuja un texto sobre el rectangulo creado
            DrawText(hDC,                                   //Identificador del dispositivo de context
                     "Hola Mundo!!!!!",                     //Texto a dibujar en pantalla
                     -1,                                    //Dejamos que la función ajuste automaticamente el tamaño del texto.
                     &rectangulo,                            //Dirección del rectangulo donde se dibujará el texto
                     DT_SINGLELINE | DT_CENTER | DT_VCENTER  //Formato del texto (una sola linea centrada horizontal y vericalmente)
                     );
            EndPaint(hwnd, &ps);        //Termina el proceso de dibujo en la ventana
        break;

        case WM_DESTROY:          //En caso que ocurra WM_DESTROY
            PostQuitMessage(0);  //Ocurre el mensaje WM_QUIT para terminar la aplicación
            return 0;
        break;
    }

    //Esta función procesa los mensajes no tratados por WindowsProc(), como redimensionar
    //la ventana, maximizarla, etc.. , es decir, hace lo predterminado sin alterar su función
    return DefWindowProc(hwnd, msg, wParam, lParam);
}



mirate este post que explican mejor que yo
http://foro.elhacker.net/programacion_cc/principios_basicos_de_programacion_windows_lenguaje_c-t299760.0.html
#504
mriandolo por encima tb veo esto

while (m='s')

deberia de ser

while (m=='s')

= es de asignacion y == de comparacion
#505
B€T€B€, iva a decirte que las licencias de seven no eran tan caras, porque creia recordar que valian sobre 70 €... fui a la pag de microsoft... 200 EURAZOS, normal que lo pirateen...., por 50 euros mas ya te compras un netbook casi...
#506
Cita de: Xafirot en 23 Febrero 2011, 22:25 PM
El uso comercial de software ilegal no es un delito sin víctimas", según apunta Luis Martín, director de Windows para empresas, y añade que supone "una competencia desleal para aquellas empresas que hacen las cosas bien y son legales y repercute muy negativamente en la creación de puestos de trabajo".

esto es mentira

mentira? si tu trabajas en una empresa en la cual cobras por hacer un software de pago, y todos te lo piratean, crees que seguiras teniendo trabajo? (obviamente el volumen de ventas de microsoft permite mantener su alta cuota de pirateria, pero esa frase es una verdad como una casa aplicado a empresas mas pequeñas)
#507
por ejemplo, tienes un vector de 5 posiciones, tal que:
int n[5];

con los numeros 1,2,3,4,5 respectivamente, para recorrerlo e imprimir sus datos puedes usar, por ejemplo un bucle for:

for(int i = 0;i<5;i++)
{
       printf("%d\n",n[i]);
}
#508
Programación C/C++ / Re: caracteres de 0 a 256?
10 Febrero 2011, 18:41 PM
Por ai tablas con cada valor y el valor ascii correspondiente  :laugh:

Hace un tiempo hice un diccionario bastante simple en C, para que no se repitiera ninguna palabra, generaba combinaciones aleatorias, y comprobaba en un array si esa combinacion ya habia sido generada, obviamente, era MUY lento con unas cuantas palabras   :laugh:

Si quieres, podrias poner algo cuando lo acabes, saludos!
#509
Programación C/C++ / Re: volver menu principal
10 Febrero 2011, 18:38 PM
Cita de: cundre en 10 Febrero 2011, 18:29 PM
ok entonces deberia crear una funcion void

y llamarla desde el main?

Con el tamaño de codigo que tienes no seria necesario, pero cuando en un programa llamas al menu varias veces, comprenderas que es mas practico  :xD
#510
Programación C/C++ / Re: volver menu principal
10 Febrero 2011, 18:22 PM
Fijate que el tipo de res es int, y en la condicion del while, lo estas comparando como si fuese un char,

Puedes hacer el menu como una funcion void, asi te quedara la funcion main mas libre.

Otros fallos:

#include "stdio.h"

Se debe incluir como #include <stdio.h>

"archivo" se utiliza para archivos que estan en la misma carpeta

la funcion main, es recomendable que vaya precedida de int, segun el standart

P.D: Evita usar la instruccion goto.

Saludos