• Martes 13 de Mayo de 2025, 14:45

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 ... 183 184 [185] 186 187 ... 205
4601
C/C++ / Re: Link En Visual C++ 6.0
« en: Jueves 20 de Octubre de 2005, 19:06 »
En teoria ya deberia funcionar, podes usar el DUMPBIN para ver los simbolos que declarados en el .LIB y pegarlos en este mensaje. Sino tambien podes pasarnos el LIB, la DLL y el .H para poder comprobar que pasa.

DUMPBIN /SYMBOLS ARCHIVO.LIB  :devil:

4602
C/C++ / Re: Getsystemtime Getlocaltime En Winapi
« en: Miércoles 19 de Octubre de 2005, 17:36 »
Las dos funcionan igual en cuanto a sus parametros:

Código: Text
  1.  
  2. SYSTEMTIME hora;
  3. GetLocalTime(&hora);
  4. printf("Estamos en el año: %d", hora.wYear);
  5.  
  6.  

 :devil:  :devil:  :devil:

4603
C/C++ / Re: Info De Estructuras De Ntfs Y Fat32
« en: Miércoles 19 de Octubre de 2005, 11:27 »
Si lo queres hacer en Windows dispones de su API para trabajar de esta manera:

Código: Text
  1.  
  2. #include <windows.h>
  3. #include <stdio.h>
  4.  
  5. #define SECTOR_SIZE 512
  6.  
  7. void main()
  8. {
  9.   //HANDLE Disco = CreateFile("\\\\.\\PHYSICALDRIVE0", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
  10.   HANDLE Disco = CreateFile("\\\\.\\C:", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_FLAG_NO_BUFFERING | FILE_FLAG_WRITE_THROUGH, 0);
  11.   if (Disco)
  12.   {
  13.     BYTE Sector[SECTOR_SIZE];
  14.     ZeroMemory(Sector, SECTOR_SIZE);
  15.     DWORD read = 0;
  16.     ReadFile(Disco, Sector, SECTOR_SIZE, &read, 0);
  17.     CloseHandle(Disco);
  18.   }
  19. }
  20.  
  21.  

Al llamar a ReadFile se obtiene el primer sector del HD, el que lleva el codigo para bootear. Si usas la llamada comentada tambien podes abrir el volumen.

Para mas informacion al respecto la MSDN:
http://msdn.microsoft.com/library/en-us/fi.../createfile.asp

Aca tenes info sobre estos formatos de archivo y sobre desfragmentacion en NTFS:

http://www.ntfs.com
http://www.sysinternals.com/Information/Di...ragmenting.html

Y mucho cuidado que podes arruinar todo el disco. :devil::devil::devil:

PD. A menos que trabajes en 16 bits assembly no te permitira nada que no te permita el Sistema Operativo y al ser tanto Windows como Linux S.O.s construidos con C toda su funcionalidad esta disponible desde C.

4604
C/C++ / Re: C++ Y Conexion Ip
« en: Miércoles 19 de Octubre de 2005, 09:58 »
Se suele hacer con select, aca abajo hay info sobre esto y sobre sockets en general:

http://squirl.nightmare.com/medusa/async_sockets.html
http://www.tangentsoft.net/wskfaq/

 :devil:  :devil:

4605
ASM (Ensamblador) / Re: Hola A Todos, Necesito Ayuda Sobre Esto
« en: Miércoles 19 de Octubre de 2005, 09:46 »
Cita de: "Victorn"
hola a todos...

toy recien metiendome en el mundo assembler. Necesito que alguien me pueda ayudar, explicandome basicamente que es una macros, sus funciones y si pueden poner ejemplos basicos para enteder mas... ojala alguien me puede ayudar gracias de antemano.
Las macros son construcciones de texto que son reemplazadas por el preprocesador dentro del codigo y no por en ensamblador en si. Estan disponibles en muchos lenguajes como por ejemplo en C (#define) y en assembly especificamente su sintaxis depende del ensamblador (MASM, NASM, FASM, etc) ya que no son parte del lenguaje ensamblador en si. Se suelen utilizar para funciones y tambien para reemplazar valores enteros constantes en el codigo.

Aca tenes un ejemplo para MASM de 32 bits:
Código: Text
  1.  
  2. CTEXT MACRO text:VARARG
  3.   LOCAL TxtName
  4.   .const
  5.     TxtName BYTE text, 0
  6.   .code
  7.     EXITM <OFFSET TxtName>
  8. ENDM
  9.  
  10.  

Con esta macro podes trabajar con cadenas como si estuvieras en C (practicamente) ya que lo que hace es declarar la cadena en la seccion de const y devolverla como resultado de la MACRO. Un ejemplo completo para MASM de 32 bits seria:

Código: Text
  1.  
  2. .386
  3. .model flat, stdcall
  4.  
  5. MessageBoxA PROTO STDCALL :DWORD, :DWORD, :DWORD, :DWORD
  6.  
  7. CTEXT MACRO text:VARARG
  8.   LOCAL TxtName
  9.   .const
  10.     TxtName BYTE text, 0
  11.   .code
  12.     EXITM <OFFSET TxtName>
  13. ENDM
  14.  
  15. .code
  16.   Main:
  17.     mov eax, CTEXT("Texto del mensaje")&#59;resultado de la MACRO (la direccion de memoria de esta cadena)
  18.     mov ecx, CTEXT("Titulo del mensaje")&#59;resultado de la MACRO (la direccion de memoria de esta cadena)
  19.     invoke MessageBoxA, 0, eax, ecx, 0
  20.   ret
  21. end Main
  22.  
  23.  

Mas info aca:
http://en.wikipedia.org/wiki/Macro

4606
C/C++ / Re: Bootear La Maquina Desde El Diskette
« en: Martes 18 de Octubre de 2005, 09:50 »
Cita de: "Solman"
Hola eternal esta bien si saltamos a FFFF:0000 entonces podemos reiniciar la maquina ok pero yo no puedo poner en C o C++ la instruccion

jmp FFFF:0000 porque no es valido ,,,, entonces q deberia poner para q reinicie la maquina pero en C (si es q programas en c) a y otra cosa .
una vez reiniciada la maquina como hago para con unas cuantas instrucciones pueda configurar el setup sin tener que hacerlo manualmente para que cargue desde el diskette y no desde el disco duro. puedes explicar eso?
La verdad es que no programo en C/C++ en 16 bits, solo hago en 32 y 64 bits. Asi que me pase por google y encontre esto:

Código: Text
  1.  
  2. void Reboot()
  3. {
  4.   __emit__ ((unsigned char)    0xEA);  /* jmp far --> FFFF:0000  */
  5.   __emit__ ((unsigned short) 0x0000);  /* offset                 */
  6.   __emit__ ((unsigned short) 0xFFFF);  /* segment                */
  7. }
  8.  
  9.  

http://bbs.ee.ntu.edu.tw/boards/Programming/13/13.html

Una vez reiniciada la maquina la BIOS ya toma el control y no podes ejecutar ninguna instruccion. Lo tenes que hacer con anterioridad y aca tenes un articulo al respecto:

http://www.codepedia.com/1/CMOS_C

 :devil:  :devil:  :devil:

4607
La taberna del BIT / Re: El Credo Del Programador
« en: Lunes 17 de Octubre de 2005, 20:14 »
Cita de: "Kev"
En el fondo de las cosas todo se resume a esto no...  :lightsabre:

En el fondo y en la superficie tambien  :whistling:  :devil:

4608
ASM (Ensamblador) / Re: Busco Gente
« en: Lunes 17 de Octubre de 2005, 10:47 »
¿Tiene relacion directa con assembly ese grupo?

PD. Por favor comproba lo que escribis antes de enviar los mensajes (hablo de la redaccion).

4609
C/C++ / Re: Bootear La Maquina Desde El Diskette
« en: Lunes 17 de Octubre de 2005, 10:43 »
Cita de: "Alpha_"
Pero y toda la RAM? Y el sistema operativo ya cargado? Qué pasa con eso?
No entiendo muy bien que tiene que ver tu pregunta, el Sistema Operativo NO esta cargado. Lo que se carga es lo que la BIOS quiere, hay una lista de unidades incluso donde podes elegir el orden y desde cuales se intente cargar. Si se carga desde un diskette no hay ningun S.O. sino que en realidad lo que haya en el diskette sera el S.O. (por muy pobre que sea sera lo unico disponible).

 :devil:

4610
C/C++ / Re: Separar Los Bytes De Un Long Int
« en: Sábado 15 de Octubre de 2005, 22:28 »
Aca tenes otra formita de hacerlo:

Código: Text
  1.  
  2. #include <stdio.h>
  3.  
  4. void main()
  5. {
  6.   int x = 0x12345678;
  7.   char *tabla = (char*)&x;
  8.   printf("0x%X\r\n", tabla[0]);
  9.   printf("0x%X\r\n", tabla[1]);
  10.   printf("0x%X\r\n", tabla[2]);
  11.   printf("0x%X\r\n", tabla[3]);
  12. }
  13.  
  14.  

 :devil:  :devil:  :devil:

4611
C/C++ / Re: Programacion De Sockets
« en: Sábado 15 de Octubre de 2005, 22:09 »
¿Turbo C? ¿Para MS-DOS?¿Ese Sistema Operativo tiene nocion de lo que es un socket? Lo dudo mucho ... obviamente puede que me equivoque pero lo dudo mucho.

4612
C/C++ / Re: Bootear La Maquina Desde El Diskette
« en: Sábado 15 de Octubre de 2005, 22:04 »
En el primer link anterior tenes dos ejemplos sobre codigo para bootear una PC.

Aca tenes la explicacion sobre el arranque de NT 5.1 (XP):
http://dotnetjunkies.com/WebLog/unknownref...cles/12284.aspx

"The CPU loads the ROM BIOS starting at ROM memory address FFFF:0000 which is only 16 bytes from the top of ROM memory. As such it contains only a JMP (jump) instruction that points to the actual address of the ROM BIOS code."

Por lo tanto si saltas a esa direccion (FFFF:0000) es como si arrancaras la maquina nuevamente.

4613
C/C++ / Re: Bootear La Maquina Desde El Diskette
« en: Sábado 15 de Octubre de 2005, 12:08 »
La BIOS te carga, despues de eso dependes de instrucciones de ensamblador e interrupciones de la BIOS mientras estes en modo real (16 bits) que es el modo en que arranca toda PC desde una XT hasta un AMD de 64 bits.

Aca tenes un par de posts que te pueden servir (assembly):

http://foros.solocodigo.com/index.php?showtopic=16756
http://foros.solocodigo.com/index.php?showtopic=16853

4614
La taberna del BIT / Re: El Credo Del Programador
« en: Sábado 15 de Octubre de 2005, 00:47 »
¿Religion? :devil:

C/C++ y assembly ... ¿Acaso existe algo mas?  :lightsabre:  :smartass:  :comp:

4615
C/C++ / Re: Forma Elegante...
« en: Viernes 7 de Octubre de 2005, 07:38 »
Cita de: "Neko-sama"
por lo que entiendo la instrucción
 
i++ No es lo mismo que la i = i + 1,  claro... hacen la misma cosa pero internamente la instruccion i++ incrementa directamente el valor de i en 1 mientras que la i = i + 1 primero internamente suma el valor de i con 1 y lo deja en otra variable para luego asignarselo a i nuevamente...  osea...  es mas lento.

yo se bien lo que es i++ o   i--   o   i+=5

solo era un ejemplo...

lo que pasa es que he visto codigo en c++ muy raro y que supuestamente es la forma mas directa de hacer cosas...  un poco para allá va apuntada mi pregunta...
Eso dependera del compilador, en este caso VC++ no hace un inc sino un add  :smartass:

4616
C/C++ / Re: Forma Elegante...
« en: Viernes 7 de Octubre de 2005, 00:56 »
Por lo menos para VC++ x += 1 y x++ es exactamente lo mismo pero no es equivalente a x = x + 1 que ocupa mas codigo. Y de cualquier manera la ultima opcion no es logica teniendo la posibilidad de hacer la suma sobre el operado (+=).

 :devil:

4617
Dudas informáticas / Re: Cambiar De Lenguaje
« en: Martes 4 de Octubre de 2005, 22:28 »
Un par de comentarios, Java para GUI me parece bastante pobre, VB tiene acceso a la API de Windows y por lo tanto puede hacer un GUI como quiera (tal como cualquier otra aplicaciones que se ejecute bajo Windows).

Mi recomendacion es C/C++, los lenguajes que mueven el mundo de la informatica. Ejemplos de uso: Windows, Linux, Mac OS, Office y la amplia mayoria de juegos.  :devil:

4618
Visual C++ / Re: La Pregunta Más Básica...
« en: Domingo 2 de Octubre de 2005, 10:23 »
VB necesita SIEMPRE de su Run Time (MSVBVMx0.DLL) con lo cual no cumple el requisito.

Delphi y Borland C++ si usan sus librerias (OWL/VCL) enlazadas dinamicamente tampoco cumplen el requisito al igual que VC++ usando su libreria MFC.

Todo .NET necesita el framework y por lo tanto tampoco cumple el requisito.


Si no usan librerias enlazadas dinamicamente y solo enlazadas contra las librerias de Windows podes usar assembly, C/C++, Pascal y cualquier lenguaje compilado que te permita usar la API de Windows y no tenga ninguna otra dependencia.

:devil:

4619
La taberna del BIT / Re: UÑas
« en: Viernes 30 de Septiembre de 2005, 19:44 »
El malware es el software maligno y no podemos calificar a una cookie (un simple archivo generado por un navegador) como software  :devil:

4620
La taberna del BIT / Re: UÑas
« en: Viernes 30 de Septiembre de 2005, 19:27 »
Cita de: "Hao"
:smartass: Asi es.. ese es el uso de las cookies y alli te meten los malwares
Una cookie es solo informacion que se guarda en el disco, violacion de la confidencialidad puede ser pero malware no.

4621
Visual C++ / Re: Duda
« en: Jueves 29 de Septiembre de 2005, 08:43 »
Supongo que Neopro se refiere a "portar" desde un compilador de 16 bits para MS-DOS (Borland C++) a uno de 32 bits para Windows (VC++).

Como bien te decia JuanK Visual Studio es un IDE cuyo compilador standard de C++ es VC++, este acepta algunas extensiones como .NET o la libreria MFC pero como acabo de decir es standard por lo cual sabiendo C++ lo unico que tenes que aprender es el funcionamiento de Windows y mas concretamente el de su API (Win32).

 :devil:

4622
La taberna del BIT / Re: Moderador...
« en: Miércoles 28 de Septiembre de 2005, 08:37 »
El objetivo es mantener el orden dentro de las reglas del foro, como ya bien dijeron. Cuanto menos trabajo tenga un moderador mucho mejor.

 :devil:

4623
ASM (Ensamblador) / Re: Masm Y Alt +q ( La Tecla Del '@')
« en: Martes 27 de Septiembre de 2005, 21:00 »
Cita de: "JuanK"
de un link que me pasaste hace poco.
¿No sera de alguno de los editores? MASM te abriria una consola que se cerraria al no tener ningun parametro que le indique el archivo a ensamblar ...

4624
ASM (Ensamblador) / Re: Masm Y Alt +q ( La Tecla Del '@')
« en: Martes 27 de Septiembre de 2005, 19:33 »
Cita de: "JuanK"
saludos, me molesta mucho que al instalar el masm en la oficina me ocurre algo, cada vez que necesito sacar el  caracter de '@' ( que en la oficina es presionando ALTGr + Q)se me abre automaticamente el masm, y me resulta bastante molesto, la única manera que he visto para quitar, por el momento, ha sido desinstalando el masm.

Hay alguna manera de evitar que esto suceda?  :argh:
Jamas me paso algo asi, ¿Que version es la que instalaste?

4625
La taberna del BIT / Re: Sistemas Operativos De Microsoft
« en: Domingo 25 de Septiembre de 2005, 10:33 »
Cita de: "Diodo"
¿Entonces Microsoft vende la misma muñeca con diferente vestido desde que sacaron w2000?  ;)
Desde 1988 se viene trabajando en Windows NT y seria una absoluta locura tirar por la borda años de buen desarrollo y ademas seria impracticable desarrollar una nueva version desde cero todas las veces. Eso no sucede en ningun Sistema Operativo, ni en Linux ni en ningun otro. Sino se sacarian como mucho dos versiones por decada.

En cada version hay cambios, incluso en cada service pack hay cambios. Otra cosa es que sean visibles para los usuarios o incluso para los programadores.
Microsoft decidio implementar el GUI en modo usuario (NT 3.51) al principio y posteriormente en modo kernel (4.0 en adelante), ningun usuario en el mundo se entero y muy pocos programadores lo saben.
Los cambios del Kernel solo suelen ser vistos por los programadores de drivers, los cambios en la API tambien llegan a los programadores de modo usuario pero los usuarios nunca se percatan de ellos, lo unico que pueden ver a ciencia cierta es el aspecto grafico y en menor medida la velocidad o estabilidad.

Por lo tan poco que estuve viendo el loader ya funcionaba de manera diferente, en las versiones anteriores cuando se carga un proceso en forma suspendida solo se mapean en memoria NTDLL.dll y la imagen en cuestion (el .exe) y hasta que no se resume el proceso (el hilo principal en realidad) no se acciona el loader y no se cargan las librerias enlazadas estaticamente mientras que en Vista si se cargan las librerias, aparentemente el loader comienza su trabajo antes de que el hilo principal arranque.

Y en cuantos a las capas nuevas yo creo que la AMPLIA mayoria de programadores estan de acuerdo en tener a .NET para que les haga casi todo el trabajo, no sera un cambio visible para los usuarios pero si para los programadores. Yo diria que el cambio mas acentuado desde la aparicion de la Win32 API ya que esta sera gradualmente enofocada a .NET (WinFx).

Páginas: 1 ... 183 184 [185] 186 187 ... 205