Recursos en win32

Iniciado por xkeycode, Junio 27, 2017, 07:54:32 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Junio 27, 2017, 07:54:32 PM Ultima modificación: Junio 27, 2017, 07:56:36 PM por Gabriela
Hola a todos,
Bien, la cosa es que estoy haciendo un proyecto en win32 con c++ y tengo un problema.
Mi aplicacion se conecta a un servidor, hasta ahi todo bien, pero puede ser que cambie el server, entonces lo que he hech es crear un txt en recursos que guarda algo tal que asi:

IP : <ipServidor>
......................
Mas datos
......................

La ip esta definida en el fichero, pero quiero que si el usuario ejecuta miExe.exe -t 192.168.1.1 actualize la ip en el archivo, asi no tengo que cambiarla yo y volver a compilar todo.
¿Alguien me puede decir como puedo hacer esto?, o aportame alguna idea?
Muchas gracias.
Be as good as you can.

Junio 28, 2017, 12:49:06 AM #1 Ultima modificación: Junio 28, 2017, 10:09:32 PM por xyz
Buenas noches xKeyCode, Que tal?

Podrías crear un array que utilice argumentos para pasarle los parámetros al momento de la ejecución del win32. No programo hace mucho pero todavia algo recuerdo ;)

Ejemplo burdo:

Código: c
include zaraza.lib .h etc..

int main(int argc, char *argv[]) {
    int i=entero-numero;
    if(argc < entero-menor-a-i) {
        printf("el parametro pasado ingreso a este bucle\n");
        exit(0);
    }
    for (cuentito) printf("el argumento que pasaste fue:",i,argv[i]);
    return(0);
}


Espero que te sirva,
Saludos.


Junio 28, 2017, 10:53:52 AM #2 Ultima modificación: Junio 28, 2017, 10:10:00 PM por xyz
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Buenas noches xKeyCode, Que tal?

Podrías crear un array que utilice argumentos para pasarle los parámetros al momento de la ejecución del win32. No programo hace mucho pero todavia algo recuerdo ;)

Ejemplo burdo:

Código: c
include zaraza.lib .h etc..

int main(int argc, char *argv[]) {
    int i=entero-numero;
    if(argc < entero-menor-a-i) {
        printf("el parametro pasado ingreso a este bucle\n");
        exit(0);
    }
    for (cuentito) printf("el argumento que pasaste fue:",i,argv[i]);
    return(0);
}


Espero que te sirva,
Saludos.
Ya pero yo lo que necesito es lo siguiente:
Código: dos
C:\> miexe.exe
Conectando a IP 192.168.1.1
C:>miexe.exe -t 10.0.2.15
Ip cambiada
C:>miexe.exe
Conectando a IP 10.0.2.15


Es decir que sea persistente.
Gracias por tu atencion.
Be as good as you can.

Hola! No tiene mucha logica que sea de esa manera, lo ideal es que cuando le pases el parámetro se ejecute con esa ip tal como te lo pase en el script anterior
Ejemplo:

Código: php

C:>miexe.exe -t 10.0.2.15
Conectando a 10.0.2.15


Caso contrario si quisieras de todas formas hacerlo como tú dices lo que podrías haces es que la funcion utilizada cuando le pasas el parámetro pise la memoria reservada para el array y le deje la nueva ip cuando ejecutas el programa. O algo más simple para empezar es que tengas un txt con una ip y luego cuando ejecutes la función "-t" haga un rw del archivo y se la cambie, una vez ejecutado eso podría seguir corriendo sin problemas.

Saludos.

Junio 28, 2017, 06:53:31 PM #4 Ultima modificación: Junio 28, 2017, 10:11:27 PM por xyz
Me imagino que esto es lo que buscas

Citar
Código: php
http://www.programacionenc.net/index.php?option=com_content&view=article&id=137:hacer-un-programa-que-reciba-parametros-desde-la-linea-de-comandos-&catid=31:general&Itemid=41

Hacer un programa que reciba parámetros desde la línea de comandos

Para hacer un programa tipo consola de modo que pueda recibir parámetros pasados desde la línea de comandos, nuestra función main debe tener la siguiente forma:



Código: c
int main(int argc, char *argv[]) 



El primer argumento de la función argc nos indica el número total de parámetros.

Mediante el segundo argumento argv, podemos acceder a los valores de los parámetros pasados al programa, siempre el primer parámetro, es decir argv[0] contiene el nombre del programa.

Ahora vamos a construír un pequeño programa para ilustrar el concepto, el código sería el siguiente:

Código: c
#include <stdio.h>

int main(int argc, char *argv[])
{
   int edad;

   if (argc==1)
   {
       printf("Debes ingresar mas parametros...\n");
       return 1;
   }

   printf("Hola %s, cual es tu edad: ", argv[1]);
   scanf("%d", &edad);

   printf("Muy bien %s, es un gusto saber que tienes %d de edad...\n", argv[1], edad);

   printf("Fin del programa %s...\n\n", argv[0]);

   return 0;   
}


Suponiendo que hemos grabado el archivo como test.cpp en la carpeta C:\tc\bin, al compilar el código habremos generado el programa test.exe.

Para usarlo desde la línea de comandos vamos a Inicio -> Ejecutar y escribimos cmd, se abrirá entonces la ventana de comandos, primero navegamos al directorio donde está almacenado nuestro programa test.exe y para ejecutarlo podemos escribir:



Citartest adrian


Notar que no hace falta escribir el .exe junto el nombre del programa, bien lo que hacemos en primer lugar es validar el número de parámetros, luego solicitamos la edad y mostramos un mensaje final.

Por lo general, al final colocamos un return 0, con lo cual indicamos que nuestro programa se ejecutó corréctamente, en el caso de error podemos retornar otro valor por ejemplo 1.



Por último una captura del programa:


MAS TEMAS:

Código: php
http://codigomaldito.blogspot.com/2005/12/parmetros-por-lnea-de-comandos-argc-y.html]http://codigomaldito.blogspot.com/2005/12/parmetros-por-lnea-de-comandos-argc-y.html


Código: php
https://blogdelingeniero1.wordpress.com/2014/07/24/como-pasar-argumentos-a-la-funcion-main-en-c/]https://blogdelingeniero1.wordpress.com/2014/07/24/como-pasar-argumentos-a-la-funcion-main-en-c/


Supongo que es lo que quieres hacer, el resto lo dejo a tu imaginación, a mi se me ocurre tener un if, desde incicio, si existe parametro, actualizo mi txt, si esta en blanco deja la ip sin tocarla.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Hola! No tiene mucha logica que sea de esa manera, lo ideal es que cuando le pases el parámetro se ejecute con esa ip tal como te lo pase en el script anterior
Ejemplo:

Código: php

C:>miexe.exe -t 10.0.2.15
Conectando a 10.0.2.15


Caso contrario si quisieras de todas formas hacerlo como tú dices lo que podrías haces es que la funcion utilizada cuando le pasas el parámetro pise la memoria reservada para el array y le deje la nueva ip cuando ejecutas el programa. O algo más simple para empezar es que tengas un txt con una ip y luego cuando ejecutes la función "-t" haga un rw del archivo y se la cambie, una vez ejecutado eso podría seguir corriendo sin problemas.

Saludos.

Estoy de acuerdo con @Cygog, es tal cual te lo dice el, puedes tener, si tiene argumentos actualizas la ip y luego conectas a la ip que se lee del archivo...
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Bravo Rush! que laburo tu respuesta! te llevas mi +Karma.

Abrazo.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Hola! No tiene mucha logica que sea de esa manera, lo ideal es que cuando le pases el parámetro se ejecute con esa ip tal como te lo pase en el script anterior
Ejemplo:

Código: php

C:>miexe.exe -t 10.0.2.15
Conectando a 10.0.2.15


Caso contrario si quisieras de todas formas hacerlo como tú dices lo que podrías haces es que la funcion utilizada cuando le pasas el parámetro pise la memoria reservada para el array y le deje la nueva ip cuando ejecutas el programa. O algo más simple para empezar es que tengas un txt con una ip y luego cuando ejecutes la función "-t" haga un rw del archivo y se la cambie, una vez ejecutado eso podría seguir corriendo sin problemas.

Saludos.
Es que yo lo que quiero es poder configurar mi ejecutable de manera independiente.
La idea es que yo creo el ejecutable pero es el propio usuario el que configura el servidor, de esa manera, cada usuario tiene un servidor con ip diferente y para no tener que enviar el codigo fuente quisiera tener manera de cambiar la ip sin toar el codigo y enviarle el ejecutable especialmete configurado para su caso.
Como podria hacer para escribir en un archivo de recursos en c++ usando win32?
Muchas gracias por tu ayuda
Be as good as you can.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Hola! No tiene mucha logica que sea de esa manera, lo ideal es que cuando le pases el parámetro se ejecute con esa ip tal como te lo pase en el script anterior
Ejemplo:

Código: php

C:>miexe.exe -t 10.0.2.15
Conectando a 10.0.2.15


Caso contrario si quisieras de todas formas hacerlo como tú dices lo que podrías haces es que la funcion utilizada cuando le pasas el parámetro pise la memoria reservada para el array y le deje la nueva ip cuando ejecutas el programa. O algo más simple para empezar es que tengas un txt con una ip y luego cuando ejecutes la función "-t" haga un rw del archivo y se la cambie, una vez ejecutado eso podría seguir corriendo sin problemas.

Saludos.
Es que yo lo que quiero es poder configurar mi ejecutable de manera independiente.
La idea es que yo creo el ejecutable pero es el propio usuario el que configura el servidor, de esa manera, cada usuario tiene un servidor con ip diferente y para no tener que enviar el codigo fuente quisiera tener manera de cambiar la ip sin toar el codigo y enviarle el ejecutable especialmete configurado para su caso.
Como podria hacer para escribir en un archivo de recursos en c++ usando win32?
Muchas gracias por tu ayuda

Realmente no entiendo tu duda, como te estamos diciendo creo que es justamente lo que pides, pero no se que es lo que no te cuadra, de hecho puedes configurar de varias maneras sin tener que usar un txt, tener una ip por default, y si alagien introduce alguna otra conectarse, pero creo que no nos estamos entendiendo
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Realmente no entiendo tu duda, como te estamos diciendo creo que es justamente lo que pides, pero no se que es lo que no te cuadra, de hecho puedes configurar de varias maneras sin tener que usar un txt, tener una ip por default, y si alagien introduce alguna otra conectarse, pero creo que no nos estamos entendiendo
Pedona, ahora que leo los post soy yo el que no se ha explicado bien.
Lo que digo es que si alguien me puede dejar un post o decime como escribo en un txt almacenado en recursos de una aplicacion win32 como habeis comentado.
O lo de pisar la memoria del array, que no entiendo a que se refiere.
Muchas gracias
Be as good as you can.