• Martes 20 de Mayo de 2025, 06:44

Mostrar Mensajes

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


Mensajes - Eternal Idol

Páginas: 1 ... 130 131 [132] 133 134 ... 205
3276
Dudas informáticas / Re: Seguridad En Instaladores
« en: Sábado 25 de Noviembre de 2006, 15:51 »
Cita de: "JuanK"
El usuario debe tener instalado el certificado privado para poder acceder al instalador , así que accede y queda instalado, pero no puede instalarlo en otra máquina porque el HDWRE ID cambia y la validación del certificado daría invalido, adicionalmente al día siguiente se vence el certificado así que menos podrá volverlo a insatalar en la máquina.
¿Y que le impide copiar el programa a otra maquina despues de instalarlo?

3277
Visual Basic para principiantes / Re: Proyecto Visual Basic
« en: Sábado 25 de Noviembre de 2006, 12:56 »
Cita de: "TorresMaeso"
Pido por favor a algun moderador o administrador de la web q borre mi registro de usuario ya q por lo visto no se puede preguntar nada. Solo haces una pregunta y parece q a la gente le molesta.
Deberian hacerlo ya que sos un mal educado y mentiroso; se te explico de muy buena gana como funciona el foro.

3278
Dudas informáticas / Re: Seguridad En Instaladores
« en: Sábado 25 de Noviembre de 2006, 10:32 »
Cita de: "dBase3"
La única manera (en caso que esté en cd) es que se atentifique a través de la web antes de seguir ejecutandose, y que cada ejecutable sea diferente por supuesto con una clave que coincida con otra que exista en el servidor, y se desactive.

Por supuesto que se puede crackear, pero no es tan facil, si el programa se actualiza frecuentemente puedes cambiar la web y además.
Lo mismo que con los dongles: mucho cuidado de hacer miles de comprobaciones para que al final sea cambiar un par de instrucciones en el ejecutable para que funcione. Realmente hay que preguntarse si vale la pena el esfuerzo, si tu producto es interesante habra gente que pague por el pero mucha mas que lo consiga gratis, alguien lo crackeara y sin ningun problema. Sino ver los juegos ... cada vez hacen sistemas mas complejos y cada vez son crackeados ...

3279
Visual C++ / Re: Crear Clave En El Registro
« en: Sábado 25 de Noviembre de 2006, 10:27 »
Tenemos TODOS que hacer un mayor esfuerzo, no podemos estar esperando siempre que nos den la comida en la boca.

Código: Text
  1.  
  2. #include <windows.h>
  3.  
  4. #pragma comment(lib, "advapi32")
  5.  
  6. void main()
  7. {
  8.   HKEY hKey = 0;
  9.   LONG Ret = RegCreateKeyEx(HKEY_LOCAL_MACHINE, "Software\\Prueba", 0, 0, 0, KEY_ALL_ACCESS, 0, &hKey, 0);
  10.   if (Ret == ERROR_SUCCESS)
  11.   {
  12.     RegCloseKey(hKey);
  13.   }
  14. }
  15.  
  16.  

3280
Visual C++ / Re: Identificar Tecla Presionada Por El Usuario
« en: Sábado 25 de Noviembre de 2006, 10:03 »
VC++ soporta esta funcion, y otras mas, no standard:

http://msdn2.microsoft.com/fr-fr/library/0...kak(VS.80).aspx

3281
C/C++ / Re: Llamar A Otro Programa Sin Que Se Vea En Pantalla?
« en: Sábado 25 de Noviembre de 2006, 10:00 »
Para esto tenes que usar la API de Windows:

ShellExecute
http://msdn.microsoft.com/library/default....hellexecute.asp

CreateProcess
http://msdn.microsoft.com/library/default....eateprocess.asp

dBase3: Te recuerdo que este es el foro de C/C++ y no el de cualquier herramienta que se nos ocurra y no conozca nadie. Esa funcion Run no la podemos usar en C/C++ y la constante es en todos los lenguajes NORMALES SW_HIDE.

3282
C/C++ / Re: Nueva Version De :reda4
« en: Sábado 25 de Noviembre de 2006, 09:51 »
Cita de: "pabloreda"
Bueno, no se si sera conveniente seguir este hilo pero bueno...
Lo correcto seria crear el/los foro/s de el/los lenguaje/s en cuestion ya que este es para otros lenguajes.

3284
La taberna del BIT / Re: El Mejor Videojuego
« en: Viernes 24 de Noviembre de 2006, 10:41 »
Uff la lista es interminable ... me gustan un par de generos por sobre los demas.

Deportes:
EA Rugby
Sensible World of Soccer
Top Spin
Virtua Tennis
Winning Eleven

Aventura grafica:
Broken Sword
Gabriel Knight
Monkey Island
Secret Files: Tunguska
Sherlock Holmes

3285
ASM (Ensamblador) / [Artículo] Devolver Valores (ASM)
« en: Jueves 23 de Noviembre de 2006, 21:58 »
¿Alguna vez se preguntaron que hace la instruccion return de CC++ y porque estamos limitados a devolver un solo valor cuando podemos pasarle varios a una funcion?

¿Que es lo que hace la instruccion return? Algo muy simple que es ajustar la pila segun la llamada, darle un valor a eax y saltar a la instruccion siguiente a la que llamo a nuestra funcion.

Código: ASM
  1. Lo que nos interesa es esto
  2. __asm
  3. {
  4. mov eax,valor
  5. }


En Windows el valor que devuelve una funcion se guarda en el registro eax; pero eax no es el unico registro que existe ni mucho menos, existen 4 registros de uso general (eax,ebx,ecx y edx).

eax viene de acumulador, ebx de base (no lo podemos usar para devolver nada porque Windows lo maneja), ecx de contador y edx de dato. Entonces tenemos 2 lugares mas donde devolver valores de una funcion, como si tuvieras un return1, return2 y un return3!!.

Vamos a ver un ejemplo muy simple para empezar:


Código: ASM
  1. #include <windows.h>
  2. void SayLong(int number)
  3. {
  4.   char Data[5];
  5.   ltoa(number,Data,10);
  6.   MessageBox(0,Data,"El Numero",0);
  7. }
  8.  
  9. int mi_funcion()
  10. {
  11.   //__asm mov eax,76
  12.   return 76;
  13. }
  14.  
  15. void main()
  16. {
  17.   DWORD Resultado = 0;
  18.   Resultado = mi_funcion();
  19.   SayLong(Resultado);
  20. }
  21.  



Que hace este programa?
Algo muy simple muestra con un MessageBox el valor que devuelve la funcion mi_funcion, pero esto nos va a servir para demostrar lo que les conte antes; descomenten la linea que comienza con __asm (le dice al compilador que escriba una o varias instrucciones de ensamblador) y comenten la que empieza con return.

Que funciona exactamente igual? Si, si, Windows devuelve el valor de una funcion en eax.

Ahora vamos a lo bueno, si no existe solo eax y tambien tenemos 2 registros como ecx y edx eso significa que podemos devolver hasta 3 valores de una funcion!

Código: ASM
  1. #include <windows.h>
  2.  
  3. void SayLong(int number)
  4. {
  5.   char Data[5];
  6.   ltoa(number,Data,10);
  7.   MessageBox(0,Data,"El Numero",0);
  8. }
  9.  
  10. void return1(DWORD Valor) { __asm mov eax,Valor }
  11. void return2(DWORD Valor) { __asm mov ecx,Valor }
  12. void return3(DWORD Valor) { __asm mov edx,Valor }
  13.  
  14. void sin_valor();
  15.  
  16. void main()
  17. {
  18.   DWORD Valor1,Valor2,Valor3;
  19.   sin_valor();
  20.   __asm mov Valor1,eax
  21.   __asm mov Valor2,ecx
  22.   __asm mov Valor3,edx
  23.   SayLong(Valor1);
  24.   SayLong(Valor2);
  25.   SayLong(Valor3);
  26. }
  27.  
  28. void sin_valor()
  29. {
  30.   return1(66);
  31.   return2(75);
  32.   return3(99);
  33. }


Finalmente ahora viene lo bueno, creamos un array de punteros (tipo string) en una funcion y la utilizamos en otra:

Código: ASM
  1. #include <windows.h>
  2.  
  3. void SayLong(int number)
  4. {
  5.   char Data[5];
  6.   ltoa(number,Data,10);
  7.   MessageBox(0,Data,"El Numero",0);
  8. }
  9.  
  10. void return1(DWORD Valor) { __asm mov eax,Valor }
  11.  
  12. DWORD Trozear(char *str)
  13. {
  14.   DWORD Max = strlen(str);
  15.   DWORD Palabras = 0;
  16.   char **str_array = (char**)malloc(1*4); //un solo puntero a string
  17.   str_array[0] = (char*)malloc(1024);
  18.   ZeroMemory(str_array[0],1024);
  19.  
  20.   for (int x = 0;x < Max;x++)
  21.   {
  22.     DWORD Pos = strlen(str_array[Palabras]);
  23.     if (str[x] == 32)
  24.     {
  25.       Palabras++;
  26.       str_array = (char**)realloc(str_array,(Palabras+1)*4);
  27.       str_array[Palabras] = (char*)malloc(1024);
  28.       ZeroMemory(str_array[Palabras],1024);
  29.     }
  30.     str_array[Palabras][Pos] = str[x];
  31.     str_array[Palabras][Pos+1] = 0;
  32.   }
  33.   __asm
  34.   {
  35.     mov ecx,[str_array]
  36.   }
  37.   return Palabras+1;
  38. }
  39.  
  40. void main()
  41. {
  42.   DWORD Palabras = 0;
  43.   char *texto = (char*)malloc(1024);
  44.   strcpy(texto,"Esta es una prueba para que separe por espacios");
  45.   Trozear(texto);
  46.   char **str_ptr;
  47.   __asm mov Palabras,eax
  48.   __asm mov [str_ptr],ecx
  49.   SayLong(Palabras);
  50.   for (int y = 0;y < Palabras;y++)
  51.   {
  52.     MessageBox(0,str_ptr[y],"Palabra",0);
  53.     free(str_ptr[y]);
  54.   }
  55.   free(str_ptr);
  56.   free(texto);
  57. }
  58.  
  59.  

Bueno, espero que les haya gustado, se que ya habra algunos diciendome que podria haber usado un doble puntero en el
prototipo de la funcion y obtener el mismo resultado; si, pero sin saber como funciona.
Por cierto en mi trabajo utilize este metodo para devolverme otros valores de una DLL creada por una compañera, asi seguia siendo compatible (en cuanto a parametros).

Saludos,
Mariano.

Autor: Mariano Ventaja

http://www.c0d3rz.com.ar

Descarga: http://www.c0d3rz.com.ar/foro/viewtopic.php?t=53

3286
C/C++ / Re: Ayuda Con Funcion
« en: Jueves 23 de Noviembre de 2006, 21:56 »

3287
C/C++ / Re: Simulacion Del Ms-dos
« en: Jueves 23 de Noviembre de 2006, 08:21 »
Cita de: "su -"
¿Para Windows hay algo como STDIN, STDOUT?
Es decir, hay algo llamado standar I/O streams como archivos o todo se haria por stdio.h?
Podes usar stdin y stdout para leer y escribir y en realidad si estas en Windows todo se "haria" por Windows.h para tener maximo control ...

http://msdn2.microsoft.com/en-us/library/3...kth(VS.80).aspx

3288
ASM (Ensamblador) / Re: Manejo De Caracteres
« en: Jueves 23 de Noviembre de 2006, 08:16 »
Como podes ver en mi mensaje y en el codigo que te dejaron la comparacion no se hace contra 0 o 9 sino contra '0' y '9' osea contra sus equivalentes en ASCII. Lo mismo va para las mayusculas y minusculas.

podrrido: por favor que no se haga costumbre poner el codigo con la resolucion como primera medida, asi no aprende nadie.

3289
ASM (Ensamblador) / Re: Conversion Cadena A Ascii
« en: Jueves 23 de Noviembre de 2006, 08:12 »
Tal como los recibis (que es en decimal) los vas poniendo uno al lado del otro (en bytes consecutivos quiero decir) y el ultimo tiene que ser un 0. Creo recordar que en MS-DOS se terminaban las cadenas con $ en vez de con 0 ... busca en Google o proba.

3290
ASM (Ensamblador) / Re: Linkear Subprogramas Asm
« en: Jueves 23 de Noviembre de 2006, 08:09 »
Si, es bastante simple, de nada.

3291
C/C++ / Re: Trazas De Informacion En Modo Debug
« en: Miércoles 22 de Noviembre de 2006, 22:37 »
Cita de: "Geo"
Eternal, aquí están esas macros:
Debug function reference
Habia visto algo por Google pero no esta pagina, igual lo mas interesante es esto:

Macro    Required Header    Compatibility
_RPT macros    <crtdbg.h>    Win NT, Win 95
_RPTF macros    <crtdbg.h>    Win NT, Win 95

3292
La taberna del BIT / Re: Tonterías Trascendentes
« en: Miércoles 22 de Noviembre de 2006, 20:44 »
Y esta "gran" parodia de Let it be:

Write in C
 
When I find my code in tons of trouble,
Friends and colleagues come to me,
Speaking words of wisdom:
"Write in C."
 
As the deadline fast approaches,
And bugs are all that I can see,
Somewhere, someone whispers:
"Write in C."
 
Write in C, Write in C,
Write in C, oh, Write in C.
LOGO's dead and buried,
Write in C.
 
I used to write a lot of FORTRAN,
For science it worked flawlessly.
Try using it for graphics!
Write in C.
 
If you've just spent nearly 30 hours
Debugging some assembly,
Soon you will be glad to
Write in C.
 
Write in C, Write in C,
Write in C, yeah, Write in C.
Only wimps use BASIC.
Write in C.
 
Write in C, Write in C
Write in C, oh, Write in C.
Pascal won't quite cut it.
Write in C.
 
Write in C, Write in C,
Write in C, yeah, Write in C.
Don't even mention COBOL.
Write in C.

 :kicking:

3293
C# / Re: C#
« en: Miércoles 22 de Noviembre de 2006, 16:48 »
Cita de: "Homar2006"
Ven, dime eso de las 10 personas que existen - La verdad no entendi - .
Sos de la clase que no sabe binario  :devil: 10 en binario es 2 en decimal  :comp:  :whistling:

3294
ASM (Ensamblador) / Re: Manejo De Caracteres
« en: Miércoles 22 de Noviembre de 2006, 15:55 »
Para saber si es un numero comparas el caracter contra '0' y '9' si es mayor o igual a '0' y menor o igual a '9' entonces es un numero. Para saber si es minuscula lo mismo pero comparando con 'A' y 'Z' y para minusculas con 'a' y 'z'.

En decimal:
'0' es 48, '9' es 57, 'A' es 65, 'Z' es 90, 'a' es 97 y 'z' es 122.

No se piden tareas ni codigo asi como asi, si tenes algun problema especifico te ayudaremos.

3295
C/C++ / Re: Trazas De Informacion En Modo Debug
« en: Miércoles 22 de Noviembre de 2006, 12:09 »
No la use ni la escuche nombrar jamas ... tal vez algo asi sea mas simple:

Código: Text
  1.  
  2. #ifdef _DEBUG
  3.   #define outDbg printf
  4. #else
  5.   #define outDbg
  6. #endif
  7.  
  8.  

3296
C/C++ / Re: Simulacion Del Ms-dos
« en: Miércoles 22 de Noviembre de 2006, 11:58 »
¿Tenes alguna duda especifica? ¿Intentaste hacer algo? Tenes que leer del teclado los posibles comandos (empeza con cosas simples como cls) ...

3297
ASM (Ensamblador) / Re: Linkear Subprogramas Asm
« en: Miércoles 22 de Noviembre de 2006, 07:57 »
En MASM lo unico que tenes que hacer es pasarle al enlazador (link.exe) por linea de comandos los archivos objetos (soporta COFF con lo cual podes enlazar codigo escrito originalmente en C con codigo en assembly).

Un ejemplo seria:
link calc.obj math.obj str.obj

3298
C++ Builder / Re: ¿cómo Cargar Una Dll?
« en: Martes 21 de Noviembre de 2006, 22:43 »
No uso Borland asi que te recomiendo usar el Google.

Para ver si las funciones estan exportadas correctamente podes usar el Dependency Walker:

http://www.dependencywalker.com/

Tienen que ser 100% exactas, coincidiendo todos los caracteres en case sensitive para que encuentre las funciones.

3299
Visual C++ / Re: Validacion De Rut
« en: Martes 21 de Noviembre de 2006, 16:21 »
¿Que problema tenes especificamente?

Código: Text
  1.  
  2. if ( (*cptr == 'k') || ( (*cptr &#62;= '1') && (*cptr &#60;= '9') ) )
  3. {
  4.    //blablabla
  5. }
  6.  
  7.  

PD. No se, ni quiero saber, que es el rut.

3300
La taberna del BIT / Re: Wii: 1- No Da Perdidas
« en: Martes 21 de Noviembre de 2006, 15:44 »
Cita de: "JuanK"
Nintendo:

...A diferencia de nuestros competidores, no tenemos otros motivos: no estamos aquí para vender televisiones de alta definición ni para convertirnos en el sistema operativo de la sala de estar ni nada parecido....

Eso se vera reflejado en el bolsillo de cada quien...
Yo creo que ganaran su cuota de mercado, perdida anteriormente, pero los comentarios que leo apuntan a que Wii tiene mucha jugabilidad pero pocos GFX y en ese campo se pelearan XBox 360 y PS3. La ultima apenas si esta saliendo, con muchisimos problemas, y con un precio mayor ...

Páginas: 1 ... 130 131 [132] 133 134 ... 205