Clipper/FiveWin - Ayuda Blinker-MSDOS-Modo Protegido

 
Vista:

Ayuda Blinker-MSDOS-Modo Protegido

Publicado por jonef (1 intervención) el 30/01/2008 18:12:31
Hola a todos!!!

Estoy atascadisimo con un problema que me está surgiendo.

Estoy trabajando en un entorno MSDOS.

Tengo por un lado una aplicación clipper que la cargo en memoria extendida y por otro lado una aplicaciones que cargo en memoria convencional.

Desde memoria protegida llamo a unas funciones que se encuentran en una librería linkadas en la aplicacion de memoria real.

Estoy usando la pila PC/TCP, y por ejemplo si llamo internamente a la función "gethostbyname" desde la función A, si desde protegido llamo a esa función A con un DosRealFarCall, misteriosamente no me funciona cuando hace la llamada a "gethostbyname".

Mirando los fuentes de PCTCP, veo que esa función está definida en la librería LSOCKET.LIB, pero internamente llama a "nm_res_name", que se encuentra en LNETLIB.LIB, y además es que está definida en un módulo de ensamblador SYSCALL1.ASM.

¿Es posible que influya el hecho de que esas funciones estén en ensamblador para que no me funcionen cuando las llamo desde modo protegido? ¿Hay que poner alguna opción de compilación especial en el blinker para que acepte? ¿Alguien ha tenido alguna vez problemas con la LNETLIB.LIB y aplicaciones en modo extendido?

Esto es un lio, pero espero haberme explicado algo.

Gracias y un saludo de antemano!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda Blinker-MSDOS-Modo Protegido

Publicado por Adalberto Baqueros (213 intervenciones) el 30/01/2008 19:54:41
Jonef.

Debes verificar si la librería LNETLIB.LIB funciona en modo protegido, pues no todas las LIB's son adecuadas para correr en este modo.

Seguiré atento.

Saludos, desde Santa Cruz de la Sierra - Bolivia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda Blinker-MSDOS-Modo Protegido

Publicado por Gabriel Pascual (913 intervenciones) el 31/01/2008 00:34:20
Como bien dice Adalberto, la librería tiene que estar creada para modo protegido, de otra forma no le puedes usar en aplicaciones para memoria extendida.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda Blinker-MSDOS-Modo Protegido

Publicado por jonef (1 intervención) el 31/01/2008 09:50:09
Gracias por contestar!

Digamos que la lnetlib.lib está linkada en un ejecutable que cargo en memoria real (convencional).

Desde un ejecutable que está en modo protegido (memoria extendida) hago una llamada a una de las funciones que están en el ejecutable en memoria real, usando para ello la llamada DosRealFarCall. Esa función a la que llamo, utiliza internamente una de las funciones de la lnetlib.lib.

Resulta que esa función de la lnetlib.lib a la que hago referencia, está definida en el módulo en ensamblador syscall1.asm, por lo que no se si es que puede haber ciertas incompatibilidades con cómo haya sido creada dicha librería.

Por tanto, no es que esté llamando a la función de la lnetlib.lib desde la aplicación en memoria protegida, sino que la llamada es desde la aplicación que tengo en memoria real, debido a la llamada que he hecho previamente desde memoria protegida a una función de la aplicación en memoria real.

Además he de decir que esa lnetlib.lib es una librería de C...para compilarla para modo protegido, ¿Qué opciones debería usar? ¿Aunque esté cargada en memoria real la lnetlib.lib, se debe compilar con esas opciones?

Sé que es un poquillo lioso cómo lo explico, jeje, espero que lo podáis entender un poco al menos jeje.

Muchas gracias!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar