Page 1 of 1

Harbour Msvc

PostPosted: Tue Jul 02, 2013 3:32 pm
by fgondi
Al linkar una aplicación con Harbour y MsVc me aparece los siguientes errores:
FiveHCm.lib(KEYBRD.obj) : error LNK2019: símbolo externo _SendInput sin resolver al que se hace referencia en la función _HB_FUN_SENDKEY
FiveHCm.lib(MEM.obj) : error LNK2019: símbolo externo _GlobalMemoryStatusEx sin resolver al que se hace referencia en la función _HB_FUN_NEXTMEM

Re: Harbour Msvc

PostPosted: Tue Jul 02, 2013 6:12 pm
by Antonio Linares
Fernando,

Las librerias que tienes que usar son FiveH32.lib y FiveHC32.lib para MSVC 2010/2012

Usa FWH\samples\buildh32.bat para construir

Re: Harbour Msvc

PostPosted: Tue Jul 02, 2013 8:39 pm
by fgondi
Antonio,

Muchas gracias.
Ni me había dado cuenta que no usaba esas librerias

Re: Harbour Msvc

PostPosted: Wed Jul 03, 2013 11:50 am
by fgondi
Genero sin ningún error la aplicación con FWH, Harbour y MsVc express 2012.
Uso las librerías FWH y Harbour para 32 bits y SDK v7.1A

Pruebo la aplicación en windows 7 de 64 y funciona bien. En el administrador de tareas me dice que estoy ejecutando una aplicación de 32 bits.

Paso el ejecutable a un Windows 2000 Server y al ejecutar me aparace el mensaje "No es una aplicación Win32 valida"

¿Que hago mal?

Re: Harbour Msvc

PostPosted: Wed Jul 03, 2013 2:57 pm
by fgondi
Lo mismo me pasa si genero con samples\tutor02 con buildh32.
En windows 2000 no me deja ejecutarlo.

También lo he probado a crear tutor02 desde otro ordenador donde tengo instalado Windows 7 de 32 bits.

Re: Harbour Msvc

PostPosted: Wed Jul 03, 2013 3:27 pm
by Antonio Linares
Fernando,

Usa PEInfo: http://www.pazera-software.com/products/peinfo/ para analizar tu EXE y mira las DLLs de Windows que usa. Es posible que alguna de ellas no este presente en Windows 2000.

Re: Harbour Msvc

PostPosted: Wed Jul 03, 2013 4:09 pm
by fgondi
Solucionado:

he variado las opciones de link, incluyendo:
/subsystem:windows,5.01

http://msdn.microsoft.com/es-es/library/fcc1zstk(v=vs.80).aspx

Ya aprovechando he mirado como quitar los mensajes LNK4006
P.E. FiveHC32.lib(MSGS.obj) : warning LNK4006: _HB_FUN_MSGYESNO ya se definió en vGhe_ExtAlsis.LIB(extfw2.obj); segunda definición omitida
se lleva a cabo con la opción /Ignore:4006