• Sábado 14 de Diciembre de 2024, 20:45

Autor Tema:  La Pregunta Más Básica...  (Leído 3856 veces)

Chicoteleco

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
La Pregunta Más Básica...
« en: Domingo 2 de Octubre de 2005, 02:30 »
0
Hola a todos,

bueno me vais a perdonar con esta preguntilla pero es que no lo tengo demasiado claro y no encuentro exactamente la respuesta que busco... :unsure:

a ver...las aplicaciones para winxp, con ventanitas y con el aspecto gráfico caracteristico de xp (y con esto quiero decir que no son JAVA ni Visual Basic), ¿en qué lenguaje de programación están hechas?

Es decir, quiero saber con qeu lenguaje crear un ejecutable en ventana grafica que cualquier persona pueda ejecutar en su windows sin necesidad de instalar cualquier libreria en plan visual basic....No sé si me explico claramente...

Creo que la respuesta el Visual C/C++ ,no? Para el  Visual C# .NET ya se requieren librerias, verdad?

Un saludo compis  :comp:  :comp:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: La Pregunta Más Básica...
« Respuesta #1 en: Domingo 2 de Octubre de 2005, 04:45 »
0
C, C++, ASM, delphi, tambien visual basic sinnecesidad de instslar nada mas. y otros...
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: La Pregunta Más Básica...
« Respuesta #2 en: Domingo 2 de Octubre de 2005, 10:23 »
0
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:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Chicoteleco

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: La Pregunta Más Básica...
« Respuesta #3 en: Domingo 2 de Octubre de 2005, 22:10 »
0
Gracias, eso es lo que quería saber!

entonces empezaré con el Visual C/C++ asi aprovecho que de C sé un poquillo  :smartass:

patitofeo

  • Miembro MUY activo
  • ***
  • Mensajes: 145
    • Ver Perfil
Re: La Pregunta Más Básica...
« Respuesta #4 en: Viernes 28 de Octubre de 2005, 14:44 »
0
:hola:

Lo siento, no he entendido muy bien ni la pregunta ni las respuestas:

Para utilizar el entorno gráfico de windows (es decir, las ventanitas), necesitas llamar a la API (Win32, SDK) que en si mismas son librerias. Por lo tanto es imposible programar aplicaciones de este tipo sin usar librerias.    :alien:

Si lo que pretendes es utilizar solamente las librerias que incluye windows en su instalacion inicial, entonces cualquier compilador y lenguaje te lo permite.   :lol:

Es cierto que visual basic hace llamadas a librerias dinamicas pero como ya he dicho, es necesario. Una aplicacion creada con visual basic que solamente incluya los controles mas basicos puede ser ejecutada desde cualquier windows sin necesidad de añadir ninguna libreria ya que windows ya dispone de ellas en la carpeta System.  

Prueba a crear un programa en visual basic del tipo hola mundo con un TextBox y un Command simplemente y crea el ejecutable. Veras como ese .exe puedes ejecutarlo en cualquier windows.   :comp:

Por otro lado, el uso de librerias es la base de la programacion modulada y estruturada por lo que no creo que deba evitarse...aunque seguro que tendrás algún motivo. Por supuesto esto es solo mi opinion.   :smartass:

 B) Espero que me corrijan si me equivoco, que es posible ¿ok? B)

Y sin animo de molestarles ¿Han intentado alguna vez construir una aplicacion en ensamblador para una aplicacion win32?

Que locos!!! yo no lo habria incluido en la lista de posibles lenguajes. Solo una llamada a una funcion de la api debe llevar horas de escribir código...  jejeje

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: La Pregunta Más Básica...
« Respuesta #5 en: Viernes 28 de Octubre de 2005, 16:20 »
0
Cita de: "patitofeo"
Si lo que pretendes es utilizar solamente las librerias que incluye windows en su instalacion inicial, entonces cualquier compilador y lenguaje te lo permite.   :lol:

No, como ya dije anteriormente:
VB necesita SIEMPRE de su Run Time (MSVBVMx0.DLL) con lo cual no cumple el requisito. No todas las versiones de Windows traen la Run Time Library de VB instalada por defecto.

Cita de: "patitofeo"
Y sin animo de molestarles ¿Han intentado alguna vez construir una aplicacion en ensamblador para una aplicacion win32?

Que locos!!! yo no lo habria incluido en la lista de posibles lenguajes. Solo una llamada a una funcion de la api debe llevar horas de escribir código...  jejeje

Hice bastantes aplicaciones de Windows 32 (GUI) en ensamblador y con MASM32 es tan facil como con C. A modo de demostracion:

C:
DestroyWindow(hwnd);

assembly puro:
push hwnd
call DestroyWindow

MASM32:
invoke DestroyWindow, hwnd

 :devil:  :devil:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Alpha_

  • Miembro activo
  • **
  • Mensajes: 72
    • Ver Perfil
Re: La Pregunta Más Básica...
« Respuesta #6 en: Viernes 28 de Octubre de 2005, 17:24 »
0
(...)
mov ax, [bp]+26
push ax
call [di]+8


Eso es assembly puro! Jeje... sin variables, sin nada.. pero bueno, todo se traduce fácilmente, se reemplazan los nombres por los offsets y listo.

Sólo para aclarar... y no, sé que parece muy difícil, pero como bien dijo Idol, no lo es tanto.

Sobre los ejecutables, justo el ejemplo de Visual Basic y de .NET son aquellos que no cumplirían el requisito. TODO programa tiene dependencias, pero el resto de los lenguajes que nombraron son aquellos en donde esas dependencias ya están incluidas en una instalación común de Windows, facilitando que con ejecutar el programa ya armado, no haya mayores problemas.
Alpha
http]

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: La Pregunta Más Básica...
« Respuesta #7 en: Viernes 28 de Octubre de 2005, 18:12 »
0
Cita de: "Alpha_"
(...)
mov ax, [bp]+26
push ax
call [di]+8


Eso es assembly puro! Jeje... sin variables, sin nada.. pero bueno, todo se traduce fácilmente, se reemplazan los nombres por los offsets y listo.

Sólo para aclarar... y no, sé que parece muy difícil, pero como bien dijo Idol, no lo es tanto.

Obviamente el codigo que puse yo, como bien decis, necesita del preprocesador pero es totalmente puro porque cualquier ensamblador para x86 lo tiene que entender mientras que el otro codigo no lo es porque la directiva invoke es propia de MASM32. Creo que la diferencia estaba muy clara.

Lo que pusiste tambien es 100% assembly pero no sirve para ilustrar nuestro ejemplo ya que es codigo de 16 bits. Solo para aclarar ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

patitofeo

  • Miembro MUY activo
  • ***
  • Mensajes: 145
    • Ver Perfil
Re: La Pregunta Más Básica...
« Respuesta #8 en: Viernes 28 de Octubre de 2005, 18:36 »
0
Bueno, gracias por la aclaracion y perdon por haber creado confusion.

De todos modos, ¿Cuales son las versiones de windows que no incorporan el Run Time Library?

Yo ejecuto sin problemas programas basicos creados en visual basic sobre windows 98 SE sin necesidad de incluir ninguna DLL que no traiga ya el sistema operativo.

Los programas los compilo en XP, 2000 o el propio 98 y ya digo que funciona. ¿Son versiones anteriores o posteriores?

En cuanto a programar sobre la Api en asembler... Yo nunca dije que no se pudiese.

Ya se que se puede y que no es dificil. Simplemente es tedioso. El ejemplo esta muy bien, pero las funciones de Win32 suelen tener mas de un paramentro y no siempre es tan facil como un entero.

Realmente hace falta mucho codigo (siempre que lo compares con cualquier lenguaje de alto nivel) para hacer una llamada a una funcion que utilice 12 o 13 parametros, y aun mucho mas codigo para mover la pila y las estructuras propias del entorno grafico. Y claro, si pretendes usar algun control, la inicializacion ya es un buen tocho.

Es muy facil pero yo no lo haria....


Muchas gracias por la aclaracion sobre la Run Time Library.

Saludos y perdon por mi error :hola:

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: La Pregunta Más Básica...
« Respuesta #9 en: Viernes 28 de Octubre de 2005, 18:56 »
0
Cita de: "patitofeo"
De todos modos, ¿Cuales son las versiones de windows que no incorporan el Run Time Library?

No soy un experto en saber que versiones de Windows la traen pero segun esta pagina ninguna anterior a Windows 2000 (o sea NT 3.x, NT 4.0 y todo Windows 9x) trae la version para VB 5.0, supongo que la 6 sera lo mismo ya que es posterior.

http://support.microsoft.com/dllhelp/?dllt...LL&S=1&x=2&y=12

De cualquier manera el punto es que esa libreria no es del S.O. sino de VB, sin ella seguirian funcionando todos los demas programas hechos en otros lenguajes. :devil:

Cita de: "patitofeo"
Realmente hace falta mucho codigo (siempre que lo compares con cualquier lenguaje de alto nivel) para hacer una llamada a una funcion que utilice 12 o 13 parametros, y aun mucho mas codigo para mover la pila y las estructuras propias del entorno grafico. Y claro, si pretendes usar algun control, la inicializacion ya es un buen tocho.

Las funciones de 12 o 13 parametros son una abominacion  :whistling: Pero de cualquier manera, comparacion entre C y MASM32.

C:
Funcion_Con_Muchos_Parametros(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);

MASM32:
invoke Funcion_Con_Muchos_Parametros, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12

Y los parametros en 32 bits son la amplia mayoria de las veces 4 bytes (un DWORD) ya sea un valor o un puntero.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.