Page 2 of 3

Re: FiveWin para WinRT (Windows 8 UI moderno)

PostPosted: Fri Apr 05, 2013 11:01 am
by Antonio Mart.
Qué vergüenza :oops: :oops: :oops: :oops: :oops:

Tú molestandote en hacernos tutoriales y yo preguntando lo explicado. Lo siento.


Oye... una cosa... me pareció que tu ya usabas versiones anteriores de Visual Studio para desarrollo de FiveWin o era otro entorno ? A ver si esta tiene más sentido. Lo pregunto por curiosidad de saber si la integración de Visual Studio-harbour-fivewin ya era posible antes o es novedad.

Re: FiveWin para WinRT (Windows 8 UI moderno)

PostPosted: Fri Apr 05, 2013 12:19 pm
by Antonio Linares
No hay problema, por eso insisto en que se visiten esas páginas en las que estoy detallando todo el proceso, paso a paso :-)

Nosotros nunca hemos usado Visual Studio para construir FiveWin, principalmente porque a mi no me gustan los IDEs, me parecen muy limitadores pese a la comodidad que puedan ofrecer. Lo que ocurre es que a partir de que probamos Harbour en el xcode de Apple, y en el IDE de Android, comprendimos que la mejor forma de incorporar Harbour a estos entornos, es adaptándonos a sus herramientas de desarrollo, de aqui que hayamos investigado como construir Harbour desde Visual Studio 2012 con la finalidad de poder construir aplicaciones para WinRT desde Visual Studio 2012 tambien :-)

Re: FiveWin para WinRT (Windows 8 UI moderno)

PostPosted: Fri Apr 05, 2013 6:41 pm
by Antonio Mart.
Muchas gracias.

BTW, hay un hilo llamado "Hilo C++", incorporado al SDK de Microsoft, donde parece que van poniendo ejemplos completitos de programacion Visual C++ sobre W8. Una pena que petzold se equivocara, a mi modo de ver, al revisar su windows programming en pragma.
http://code.msdn.microsoft.com/windowsa ... e-b53fd433

Re: FiveWin para WinRT (Windows 8 UI moderno)

PostPosted: Sat Apr 06, 2013 6:30 pm
by cnavarro


Según el proyecto que adjuntas en tus explicaciones
Al Compilar obtengo lo siguiente:
Code: Select all  Expand view

Error   1   error C2081: 'LPMODULEENTRY32' : el nombre de la lista de parámetros formales no es válido    c:\harb\src\vm\extrap.c 376 1   Harbour
Error   2   error C2081: 'LPMODULEENTRY32' : el nombre de la lista de parámetros formales no es válido    c:\harb\src\vm\extrap.c 377 1   Harbour
Advertencia 3   warning C4047: 'función' : 'int' es distinto en los niveles de direccionamiento indirecto de 'MODULEENTRY32 *' c:\harb\src\vm\extrap.c 398 1   Harbour
Advertencia 4   warning C4024: 'pModule32First' : tipos distintos para el parámetro formal y el parámetro real 2  c:\harb\src\vm\extrap.c 398 1   Harbour
Advertencia 5   warning C4133: 'función' : tipos incompatibles, de 'TCHAR [260]' a 'const char *'  c:\harb\src\vm\extrap.c 414 1   Harbour
Advertencia 6   warning C4047: 'función' : 'int' es distinto en los niveles de direccionamiento indirecto de 'MODULEENTRY32 *' c:\harb\src\vm\extrap.c 420 1   Harbour
Advertencia 7   warning C4024: 'pModule32Next' : tipos distintos para el parámetro formal y el parámetro real 2   c:\harb\src\vm\extrap.c 420 1   Harbour
    8   IntelliSense: el identificador "LPMODULEENTRY32" no está definido  c:\Harb\src\vm\extrap.c 376 52  Harbour
    9   IntelliSense: el identificador "LPMODULEENTRY32" no está definido  c:\Harb\src\vm\extrap.c 377 52  Harbour
    10  IntelliSense: un argumento de tipo "TCHAR *" no es compatible con un parámetro de tipo "const char *"  c:\Harb\src\vm\extrap.c 414 47  Harbour
 


He cambiado el fichero windows.h tal y como explicas y colocado el fichero win32.h en la misma carpeta que está windows.h
Alguna sugerencia?
Gracias

Re: FiveWin para WinRT (Windows 8 UI moderno)

PostPosted: Sun Apr 07, 2013 7:23 am
by Antonio Linares
Cristobal,

Tienes que cambiar LPMODULEENTRY32 por char * en c:\harb\src\vm\extrap.c

Es debido a un hack que Viktor tiene hecho ahi y que no le gusta al Visual Studio :-)

Re: FiveWin para WinRT (Windows 8 UI moderno)

PostPosted: Sun Apr 07, 2013 9:30 am
by cnavarro
Antonio Linares wrote:Cristobal,

Tienes que cambiar LPMODULEENTRY32 por char * en c:\harb\src\vm\extrap.c

Es debido a un hack que Viktor tiene hecho ahi y que no le gusta al Visual Studio :-)


Antonio, mis conocimientos de C, son básicos
Entiendo que el problema está en el tipo de definición de la función ¿?
Exactamente dónde he de cambiar?
En las lineas 376 y 377
typedef BOOL ( WINAPI * P_M32F )( HANDLE, LPMODULEENTRY32 ); /* Module32First() */
typedef BOOL ( WINAPI * P_M32N )( HANDLE, LPMODULEENTRY32 ); /* Module32Next() */
Si cambio el BOOL por CHAR * no funciona y me da errores, y si cambio HANDLE igual
Un saludo

Re: FiveWin para WinRT (Windows 8 UI moderno)

PostPosted: Mon Apr 08, 2013 9:52 pm
by cnavarro
Antonio, ahora obtengo lo siguiente:

Code: Select all  Expand view

1>c:\harb\src\vm\extrap.c(398): warning C4133: 'función' : tipos incompatibles, de 'MODULEENTRY32 *' a 'CHAR *'
1>c:\harb\src\vm\extrap.c(414): warning C4133: 'función' : tipos incompatibles, de 'TCHAR [260]' a 'const char *'
1>c:\harb\src\vm\extrap.c(420): warning C4133: 'función' : tipos incompatibles, de 'MODULEENTRY32 *' a 'CHAR *'
1>c:\harb\src\vm\maindllh.c(72): warning C4007: 'DllMain' : debe ser '__stdcall'
1>  Harbour_LibRtl.vcxproj -> C:\Users\C\Documents\Visual Studio 2012\Projects\Harbour_LibRtl\Debug\Harbour_LibRtl\Harbour.lib
========== Recompilar todo: 1 correctos, 0 incorrectos, 0 omitidos ==========
 


La libreria la crea pero con los warning anteriores.
No se pueden solucionar?
Gracias

Re: FiveWin para WinRT (Windows 8 UI moderno)

PostPosted: Tue Apr 09, 2013 11:25 am
by Antonio Linares
Cristobal,

typedef BOOL ( WINAPI * P_M32F )( HANDLE, LPMODULEENTRY32 );

quedaría como:

typedef BOOL ( WINAPI * P_M32F )( HANDLE, char * );

Ya has conseguido construir la librería, muy bien :-)

El warning:
1>c:\harb\src\vm\maindllh.c(72): warning C4007: 'DllMain' : debe ser '__stdcall'

podemos solucionarlo quitando ese fichero maindllh.c del proyecto, ya que no vamos a construir una DLL. Pruebalo :-)

Re: FiveWin para WinRT (Windows 8 UI moderno)

PostPosted: Tue Apr 09, 2013 2:48 pm
by cnavarro
Antonio, gracias

Ya habia puesto lo que comentas: typedef BOOL ( WINAPI * P_M32F )( HANDLE, char * );
obteniendo el warning comentado
Lo he sustituido por: typedef BOOL ( WINAPI * P_M32F )( HANDLE, HANDLE );
obteniendo unicamente el warning:
c:\harb\src\vm\extrap.c(414): warning C4133: 'función' : tipos incompatibles, de 'TCHAR [260]' a 'const char *'

Linea 414:
hb_strncpy( szBuffer, me32.szExePath, HB_SIZEOFARRAY( szBuffer ) - 1 );

Gracias de nuevo

Re: FiveWin para WinRT (Windows 8 UI moderno)

PostPosted: Tue Apr 09, 2013 2:56 pm
by Antonio Linares
Cristobal,

Con estos cambios elimino todos los warnings de compilación de ese fichero:

typedef BOOL ( WINAPI * P_M32F )( HANDLE, const char * ); /* Module32First() */
typedef BOOL ( WINAPI * P_M32N )( HANDLE, const char * ); /* Module32Next() */

...

línea 400:
if( pModule32First( hModuleSnap, ( char * ) &me32 ) )


línea 416:
hb_strncpy( szBuffer, ( char * ) me32.szExePath, HB_SIZEOFARRAY( szBuffer ) - 1 );


línea 422:
while( pModule32Next( hModuleSnap, ( const char * ) &me32 ) );

Re: FiveWin para WinRT (Windows 8 UI moderno)

PostPosted: Tue Apr 09, 2013 3:10 pm
by cnavarro
Antonio, perfecto

Ahora a estudiar

Mil gracias por todo
Un saludo

Re: FiveWin para WinRT (Windows 8 UI moderno)

PostPosted: Wed Apr 10, 2013 2:15 pm
by Antonio Mart.
Cristóbal,

Me dejaste un poco intrigado con eso de "ahora a estudiar". ¿ A estudiar qué y dónde ?

(Por si puede servir pongo aquí un link http://blogs.microsoft.co.il/blogs/pavely/)

Saludos

Re: FiveWin para WinRT (Windows 8 UI moderno)

PostPosted: Wed Apr 10, 2013 5:31 pm
by Antonio Linares
Antonio,

Siguiendo las indicaciones (paso a paso) que estoy publicando en el wiki de FiveWinRT:

https://code.google.com/p/fivewinrt/wiki/How_to_build_Harbour_for_WinRT

se puede ir comprendiendo, y practicando, la forma de usar Harbour en Windows 8 WinRT :-)

Re: FiveWin para WinRT (Windows 8 UI moderno)

PostPosted: Wed Apr 10, 2013 8:22 pm
by Antonio Mart.
Antonio,

Pensé que eso ya lo había hecho Cristobal al haber montado harbour y pensé que por ahí iba más o menos vuestro tutorial. :( :D

Saludos

Re: FiveWin para WinRT (Windows 8 UI moderno)

PostPosted: Wed Apr 10, 2013 9:07 pm
by Antonio Linares
Hoy he publicado tutor01.prg y funciona! :-)

Con algunos problemas aún pendientes de solucionar (por cambios recientes en Harbour), pero ya medio arranca bien :-)