• Lunes 12 de Mayo de 2025, 12:26

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 ... 193 194 [195] 196 197 ... 205
4851
ASM (Ensamblador) / Re: Queriendo Aprender
« en: Martes 19 de Julio de 2005, 21:57 »
http://www.google.com/search?hl=en&lr=&q=t...ial+ensamblador

Segun pude ver el emu8086 emula, justamente, la BIOS y parte de los servicios de MS-DOS.

Podes usar los servicios 0 y 1 de la interrupcion 16h para el teclado:
http://www.ctyme.com/intr/int-16.htm

 :smartass:  :comp:  :ph34r:

4852
C/C++ / Re: 256 Colores En Turbo C
« en: Martes 19 de Julio de 2005, 08:24 »
Cita de: "Darktigerhell"
la interrupcion anterior esta bien, es la de graficos, y usa los siguientes valores para usar la resolucion

#define r640x400x256   0x100
#define r640x480x256   0x101
#define r800x600x256   0x103
#define r1024x768x256  0x105
#define r1280x1024x256 0x107

y quedaria finalmente

asm {
  mov ax, 0x4f02
  mov bx, [r640x480x256]
  int 0x10
  cmp ax, 0x004f
  jne Error
 }
No esta mal, aunque error no esta definido y solo estas comparando el retorno de la funcion para saber si esta soportada. Puede estar soportada por la BIOS pero no por el adaptador/monitor, en AH se devuelve 0 si funciona y 1 si fallo.
Por cierto, los corchetes delante del modo de video son prescindibles.

Ya terminando, para no aburrir, les comento a los demas que este codigo ya aprovecha el standard VESA.

 :ph34r:  :smartass:  :comp:

4853
Visual C++ / Re: Error Al Linkar
« en: Lunes 18 de Julio de 2005, 12:59 »
De nadas, me alegro de que te haya servido  B)

Para cambiar el nombre del archivo de salida (que ya es una DLL por cierto) en Visual Studio .NET 2003:

Proyecto>>Propiedades>>Vinculador>>General>>Archivo de resultados

 :comp:  :ph34r:  :whistling:

4854
Visual C++ / Re: Error Al Linkar
« en: Lunes 18 de Julio de 2005, 09:46 »
Bueno, entonces estas haciendo una DLL y no un ejecutable. Dudo mucho que quieras quitar la CRT entonces te recomiendo hacer lo siguiente:

1. Deja en blanco el campo de Entry Point.
En vez de establecer el Entry Point con la correspondiente perdida de inicializacion de la CRT usa DllMain de la misma manera, esta sera llamada por el Entry Point de la CRT:

Código: Text
  1.  
  2. BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
  3. {
  4.   return 1;
  5. }
  6.  
  7.  

2. Cambia el tipo de proyecto, ahora mismo debe ser "Aplicacion (.exe)", tenes que cambiar a "Biblioteca dinamica (.dll") entonces el enlazador buscara DllMain y asunto solucionado. Para hacer esto con Visual Studio .NET 2003:
Proyecto>>Propiedades>>General>>Tipo de Configuracion

3. Establece el subsystem a WINDOWS. Para hacer esto con Visual Studio .NET 2003:
Proyecto>>Propiedades>>Vinculador>>Sistema>>Subsistema

 :smartass:

4855
GNU/Linux / Re: Al Menos No Soy El único Que Lo Dice
« en: Lunes 18 de Julio de 2005, 07:44 »
Esas supercomputadoras tampoco tienen gran importancia, a menos claro que las podamos tener en casa  :P

En cuanto al Starter Edition no es mas que un intento de Microsoft por hacerse nuevamente con el mercado OEM.

4856
C/C++ / Re: 256 Colores En Turbo C
« en: Domingo 17 de Julio de 2005, 19:47 »
Eso seria:

Código: Text
  1.  
  2. xor ah, ah
  3. mov al, 13h
  4. int 10h
  5.  
  6.  

 :smartass:  :comp:  :ph34r:

4857
GNU/Linux / Re: Al Menos No Soy El único Que Lo Dice
« en: Sábado 16 de Julio de 2005, 19:33 »
Cita de: "ibito"
Si, con Ctrl+Alt+F1 o Ctrl+Alt+F2 ... F6

Tambien puedes matar el servidor X con Ctrl+Alt+Backspace... y se manda a consola... en algunas distros te lleva a consola e intenta iniciar X otravez...  :P
Exactamente a eso me referia, se ve que este tipo sabia hasta menos que yo de Linux  :whistling:

4858
Visual C++ / Re: Error Al Linkar
« en: Sábado 16 de Julio de 2005, 03:03 »
El lenguaje que estes usando no tiene la menor importancia, da exactamente lo mismo que sea C o C++ y el problema no es que tenga que especificar el metodo de entrada (solo hay que hacerlo sino es uno standard) sino que el enlazador no lo encuentra.

Si tenes en las opciones configurado el subsystem del proyecto como CONSOLE necesitas usar main, cambialo a WINDOWS si estas usando WinMain como funcion principal de tu proyecto.

Si usas una funcion propia diferente tenes que usar la configuracion del linker para establecer el punto de entrada (Entry Point) desde linea de comandos es /entry:nombre_Funcion.
Si asi fuera solo podrias compilarlo en RELEASE y eliminaria la inicializacion de la Run Time Library, hay un par de tutoriales mios al respecto en este sitio, cualquier cosa pregunta mas al respecto.

 :smartass:  :whistling:

4859
GNU/Linux / Re: Al Menos No Soy El único Que Lo Dice
« en: Sábado 16 de Julio de 2005, 02:19 »
"Tanto los sistemas Windows NT como Linux son sistemas operativos con micronúcleo (microkernel)."

Ese articulo comienza diciendo que Linux es un microkernel ... me imagino que AST debe estar de acuerdo ...

Que NT sea un microkernel es bastante discutible. ¿Acaso el memory manager, process manager y I/O manager se ejecutan en modo usuario como un proceso comun y corriente? Ver Mach.

"Esta es una diferencia importante con Windows. Uno paga Windows una sola vez, compra la licencia de uso, y en principio, no la debe pagar de nuevo cada año a menos que desee cambiar de versión o aumentar el número de licencias."

¿Esta es la diferencia? Iluso de mi, yo pensaba que la diferencia era que Linux se podia obtener gratuitamente y Windows no ...

"Eventualmente, la interfaz de Windows NT se puede quitar también, y lograr que el servidor corra en modo de carácteres o consola. "

Hasta los terminals servers de Windows necesitan el subsystem de GUI por lo tanto esta afirmacion es totalmente erronea.

¿Necesito que un profesor me diga que Gnome no corre en un 486? Creo que ya fue mencionado incluso en este hilo ...

¿Habla de virus y no habla de Rootkits? ...

"Para entender esto más en profundidad, diremos que el sistema operativo NT puede ser visualizado como una serie de anillos, correspondiendo el anillo-cero al micronúcleo o la parte más cercana al mismo."

Solo se utilizan dos anillos (0 y 3 en x86) para ser compatible con otras plataformas donde funcionaba como Compaq Alpha o Silicon Graphics MIPS.

"Sin embargo, un driver mal escrito podía arruinar el sistema entero, al corromper los segmentos de memoria del kernel, justamente eso es lo que sucedía a veces con NT y eventualmente 2000."

Esto pasa en cualquier version de Windows y tiene una logica, si un driver genera un excepcion que no es controlada el S.O. asume que puede haber habido algun tipo de corrupcion de datos (estructuras internas del Kernel por ejemplo) y genera una llamada a la funcion KeBugCheckEx que muestra la hermosa pantalla azul.

"Las colgadas de Linux son más espectaculares que las de Windows, la máquina queda totalmente congelada"

¿No les parece un poco subjetivo hablar de la espectacularidad de un 'cuelgue'?
Por cierto me remito a lo anterior y agrego que incluso puede ser que la pantalla azul no se llegue a mostrar si se corrompen determinadas estructuras internas del Kernel, que espectaculo ...

"Los defensores de Linux dicen que si los eventos modales se congelan, se podría "matar" el servidor X para retomar el control del sistema. Pero en mi caso, no hubo forma de retomar el control, ya que el procesamiento de mensajes modales también se había interrumpido (el puntero del ratón estaba congelado). No hubo forma de recuperarlo sino con un reinicio en frío (con la llave de encendido del equipo)."

No soy experto en Linux ni mucho menos asi que esto es solo una especulacion. ¿Acaso con el mouse congelado no se pueden seguir abriendo las demas consolas?

Para finalizar un estudio pagado por Microsoft no representa nada ...

4860
GNU/Linux / Re: Linux Antivirus(recomendado)
« en: Viernes 15 de Julio de 2005, 21:46 »
Cita de: "RadicalEd"
Este es uno de Panda Software
Y es Freeware   :whistling:  :smartass:

4861
C++ Builder / Re: Borrar Ficheros
« en: Jueves 14 de Julio de 2005, 19:48 »
La funcion DeleteFile de la API de Windows te sirve perfectamente.

http://msdn.microsoft.com/library/default..../deletefile.asp

 :whistling:  :smartass:

4862
C++ Builder / Re: Copiar Capertas En Builder
« en: Miércoles 13 de Julio de 2005, 18:13 »
¿Estas incluyendo la libreria shellapi.h?  :whistling:

4863
C++ Builder / Re: Una Ayudita Con El Winexe
« en: Miércoles 13 de Julio de 2005, 08:24 »
UINT WinExec(LPCSTR lpCmdLine, UINT uCmdShow);

La funcion WinExec es muy facil de usar por ejemplo asi:
WinExec("notepad.exe", SW_SHOWNORMAL);

Tene en cuenta que puede ser posible que tengas que usar el path completo del ejecutable, Windows sigue estos pasos si no hay path:

The directory from which the application loaded.
The current directory.
The Windows system directory. The GetSystemDirectory function retrieves the path of this directory.
The Windows directory. The GetWindowsDirectory function retrieves the path of this directory.
The directories listed in the PATH environment variable.

 :whistling:

4864
GNU/Linux / Re: Al Menos No Soy El único Que Lo Dice
« en: Miércoles 13 de Julio de 2005, 08:14 »
Lo de siempre, 9x es una abominacion de la historia. Pero te cuento que Windows NT 4.0 ya existia en 1996, yo no tuve la suerte de probarlo realmente en ese momento pero ahora si y reconozco el valor de un S.O. que se ejecuta PERFECTAMENTE en una maquina virtual de 64mb (no comparemos con S.O. de consola por favor).

Yo tampoco me niego a programar en Linux ni mucho menos, sin ir mas lejos lo he hecho profesionalmente  :comp:  :smartass:

4865
ASM (Ensamblador) / Re: Programar La Gpu
« en: Miércoles 13 de Julio de 2005, 07:38 »
Cita de: "bob esponja"
que el man sea mejor que el MSDN es una gran mentira en eso concuerdo con vos
 :ph34r: Menos mal jeje  :comp:

4866
Visual C++ / Re: Tipo De Cuenta Usuario
« en: Martes 12 de Julio de 2005, 16:00 »
Yo la tengo pero solo se compila si especificas la version de Windows mayor o igual a 5 (Windows 2000).

#if(_WIN32_WINNT >= 0x0500)

De cualquier manera me alegro de que te haya servido  :smartass:

4867
ASM (Ensamblador) / Re: Programar La Gpu
« en: Lunes 11 de Julio de 2005, 07:41 »
Cita de: "bob esponja"
la primera vez que lei la comparacion de MSDN  con el man la deje pasar, pero esta mal que a los que recien empiezan se los asuste con "el monstruo de linux"
La utilizo muchas veces por la simple razon de que incluso compañeros de trabajo me han llegado a decir que man es mejor que la MSDN.

 :whistling:

Por cierto en el tema sobre Linux dejaste un mensaje bastante largo pero no te vi responder despues, te invito que lo hagas.

4868
Delphi / Re: Delphi Y Frotran 90
« en: Domingo 10 de Julio de 2005, 09:54 »
"DFORRT.DLL is needed for any single-threaded Visual Fortran application"

Como bien dice Enko tenes que distribuir esta libreria junto al ejecutable.
 :smartass:

4869
C/C++ / Re: Haciendo Un Programa Ejecutable
« en: Domingo 10 de Julio de 2005, 09:47 »
Lo mas probable es que tuviera un makefile o algo asi. El programa seria muy sencillo de crear ya que lo unico que debe hacer es ejecutar otro programa con unos determinados parametros. Tal vez puedas usar la funcion system o fork, realmente Linux no es mi campo.

 :whistling:  :smartass:  :ph34r:

4870
ASM (Ensamblador) / Re: Cambiar A Ring 0
« en: Domingo 10 de Julio de 2005, 09:39 »
De nadas pero para poder hacerlo vas a necesitar abrir el objeto \Device\PhysicalMemory ya que no podes acceder directamente a las direcciones donde estan las tablas (GDT, LDT) porque justamente estan en modo kernel.

¿Que queres hacer exactamente si se puede saber? Seguramente te podria ayudar.

 :hola:  :smartass:  :whistling:

4871
ASM (Ensamblador) / Re: Programar La Gpu
« en: Sábado 9 de Julio de 2005, 19:09 »
Que yo sepa no, por eso te comentaba en mensajes anteriores que es imprescindible entender Ingles tecnico ya que la mayoria de la documentacion esta en ese idioma y ni hablar de las cosas que van saliendo.

 :smartass:

4872
C/C++ / Re: Es Layerd Mejor Que C++?
« en: Sábado 9 de Julio de 2005, 13:08 »
Cita de: "alexisfar"
LayerD es una nueva tecnologia latina gratuita que promete muchas funciones aparentemente utiles como POO y POA (programación orientada a aspectos). Su sitio web es LayerD.net, ahi pude leer un tutorial teórico práctico que esta bastante bueno  y por lo que promete parece que es una tecnologia muy buena, ademas de lo antes dicho soporta la construcción de estructuras semanticas propias y de habilidad RAD directamente en el compilador, además se puede programar en multiples lenguajes de entrada y es multiplataforma. Es una lastima que todavia no haya compiladores, pero segun esta web lo habra muy pronto y disponibles gratuitamente!. Espero puedan visitar este sitio y me comenten si piensan al igual que yo, que puede ser una buena opcion a los lenguajes y herramientas actuales.

Me imagino que queres decir soportara en algun momento de la historia ya que lo unico que existe hasta ahora es un convertidor a XML. Les deseo mucho suerte porque la necesitaran, C++ lleva años en el mercado.

4873
C/C++ / Re: Haciendo Un Programa Ejecutable
« en: Sábado 9 de Julio de 2005, 11:57 »
Tambien podes hacer un programa que ejecute al compilador (supongo que gcc) con los parametros necesarios, esto es lo que hacen los IDE's ya que los compiladores y enlazadores son ejecutables aparte que utiliza la consola para mostrar sus resultados.

 :smartass:

4874
C/C++ / Re: Pregunta Acerca De Plantillas
« en: Sábado 9 de Julio de 2005, 11:54 »
El problema esta en el tipo de datos de retorno, estas confundiendo la sintaxis y en algunos casos no especificando el tipo de retorno como en este:

Código: Text
  1.  
  2. template <class T>
  3. void lista<T>::agregar(T n1, T n2)
  4. {
  5.   v1 = n1;
  6.   v2 = n2;
  7. }
  8.  
  9.  

El codigo asi funciona:

Código: Text
  1. #include <iostream>
  2. #include <stdio.h>
  3.  
  4. using namespace std;
  5.  
  6. template <class T>
  7. class lista
  8. {
  9.   public :
  10.     lista();
  11.     void agregar(T n1,T n2);
  12.     void muestra();
  13.     void setN(T n1,T n2);
  14.     T getN1();
  15.     T getN2();
  16.   private:
  17.     T v1;
  18.     T v2;
  19. };
  20.  
  21. template <class T>
  22. lista<T>::lista()
  23. {
  24.   v1 = 1;
  25.   v2 = 2;
  26. }
  27.  
  28. template <class T>
  29. void lista<T>::agregar(T n1, T n2)
  30. {
  31.   v1 = n1;
  32.   v2 = n2;
  33. }
  34.  
  35. template <class T>
  36. T lista<T>::getN1()
  37. {
  38.   return v1;
  39. }
  40.  
  41. template <class T>
  42. T lista<T>::getN2()
  43. {
  44.   return v2;
  45. }
  46.  
  47. template <class T>
  48. void lista<T>::setN(T n1,T n2)
  49. {
  50.   v1 = n1;
  51.   v2 = n2;
  52. }
  53.  
  54. template <class T>
  55. void lista<T>::muestra()
  56. {
  57.   cout << "\nv1=" << v1 <<" v2=" << v2;
  58. }
  59.  
  60. int main()
  61. {
  62.   int a = 12, b = 5;
  63.   lista<int> listaint;
  64.   listaint.agregar(a, b);
  65.   listaint.muestra();
  66.   return 0;
  67. }
  68.  
  69.  

 :whistling:  :smartass:  :ph34r:

4875
ASM (Ensamblador) / Re: Programar La Gpu
« en: Sábado 9 de Julio de 2005, 08:56 »
Cita de: "CodigoDavid"
Ok, lo que pasa es que a mi esto de utilizar librerias ya "prefabricadas" supongo que tambien tienen sus limitaciones, y entonces, si hay algo que quieres hacer pero no esta implementado en la API pero tampoco lo puedes programar directamente en el hardware por que el sistema no te deja que haces? no creo que hayga muchas limitaciones hoy en dia con la cantidad de cosas que tienen las API pero siempre hay excepciones..........................y mi mayor dificultad es que no se por donde empezar, supongo que primero seria estudiar la api de windows, y luego DirectX o OpenGL, pero, y mi talon de aquiles es el mega-ultra-super-bajo nivel de ingles que tengo :unsure: y claro, cuanto tiempo cuesta aprender un ingles decente? 1 año? pffff...... y tambien me encuentro por internet algunos tutoriales que alomejor pone la descripcion por ejemplo de la estructura WNDCLASSEX asi:

vale, ok, bien, pero para que sirve concretamente cbClsExtra? es que dice que es generalmente 0, vale, generalmente, pero por que no dice exactamente para que sirve? ami esta falta de informacion es lo que me "mata" en esto de la programacion................estos son en resumen con los problemas con los que me encuentro con el API de windows :alien:

Cuando quieras hacer algo muy especifico pensa en hacer un driver que se ejecute en modo kernel, por lo menos si queres que sea usado por mas de cinco personas en el mundo.

En cuanto a lo de la API lo lamento mucho pero tengo que decir que es tu culpa. Ese campo en particular esta explicado al detalle en la MSDN:

cbClsExtra
Specifies the number of extra bytes to allocate following the window-class structure. The system initializes the bytes to zero.


¿Que significa esto? Este campo especifica el numero (cantidad) de bytes extra para reservar justo despues de la estructura de la Ventana. El sistema INICIALIZA los bytes a cero, eso quiere decir que la memoria esta toda puesta a cero, cada uno de sus bytes.
La ayuda que tenes dice que generalmente se inicializa a cero porque la gente o no necesita guardar variables de la ventana o utiliza otros metodos.

Realmente yo me saco el sombrero ante la MSDN y el DDK, si tuviera que programar en Linux con el man mi vida seria mucho mas complicada  :smartass:

Páginas: 1 ... 193 194 [195] 196 197 ... 205