[C con Clase] Winapi y c++

Hugo García hgc2204 en gmail.com
Jue Abr 10 16:22:06 CEST 2014


Pues si, me has ayudado bastante y me has solucionado el problema que tenía
con los strings, muchas gracias.

Buscando como usar las WindowsTemplet Library (que son las open source) en
codeblocks, he dado con otras librerías escritas en c++ que me sonaban de
haber oido del mundo linux pero que no conozoco por completo. QT y GTK.

Llegados a este punto tengo varias opciones.

-Seguir buscando como usar las wtl desde codeblocks y ver que tal o usar la
versión free de visual c
-Picar código y usar la api y crear mi propia capa con las funciones que
necesite.
-Investigar y usar Las QT (o gtk, pero parece ser que las QT son "menos
duras") que además son multiplataforma.

¿Que me recomendarías/iais? ¿a cual le podría sacar más provecho?

Un saludo y gracias de nuevo.



El 10 de abril de 2014, 15:31, Davidson, Steven <srd4121 en njit.edu> escribió:

> Hola Hugo,
>
> 2014-04-10 7:56 GMT-04:00 Hugo García <hgc2204 en gmail.com>:
>
> Hola,
>>
>> Estoy intentando hacer un pgm con GUI y quiero hacerlo lo más orientado a
>> objetos posible recurriendo a temas de punteros y "al bajo nivel" lo menos
>> posible, vengo de hacer cosas en c# en visual estudio 2010) y me estoy
>> encontrando con cosas que me resultan bastante puñeteras.
>>
>> Ya se que el framework que tiene detras .net tiene mucho código que
>> facilita la tarea, mi pregunta es ¿hay cabeceras en c++ que hagan esto?
>>
>>
> Si quieres usar el API de MS-Windows, pero "más C++", entonces puedes usar
> MFC, que es una colección de clases envolventes.
>
> Por ejemplo quiero una función que aunque lo que haga sea en c, lo que
>> utilice sea de c++ (no se si he expresado muy bien esto...), por ejemplo
>> ahora estaba intentando esto:
>>
>> void DisplayMessageExtl(string szText, string szCaption)
>>
>
> Como vienes de C#, te aclaro que en C++ todos los parámetros se pasan por
> copia (o por valor). Por lo tanto, si quieres pasar por referencia, tienes
> que ser explícito. Esto es,
>
> void DisplayMessageExtl( const string &szText, const string &szCaption )
>
> Sin embargo, sugiero usar 'u16string' si quieres usar cadenas de
> caracteres de Unicode de 16 bits.
>
> {
>>     int msgboxID = MessageBox(
>>         NULL,
>>         szText.c_str(),
>>         szCaption.c_str(),
>>
>
> Tienes que conseguir la representación de puntero a 'char' - "al estilo de
> C". Para esto, invocamos la función miembro (método), 'c_str()'.
>
>         MB_ICONQUESTION | MB_YESNOCANCEL | MB_DEFBUTTON2
>>     );
>>
>>     switch (msgboxID)
>>     {
>>     case IDYES:
>>         PostQuitMessage (0);
>>         break;
>>     case IDNO:
>>         break;
>>     case IDCANCEL:
>>         break;
>>     }
>> }
>>
>> Pero claro no es posible pq MessageBox espera un puntero a un char. He
>> intenado hacer un cast con (LPCSTR) pero no funciona.
>>
>>
> No puedes hacer este cásting, porque 'string' no ofrece tal conversión; es
> decir, no sobrecarga el operador de conversión a 'const char *'.
>
> ¿Hay alguna manera de conseguir lo que quiero?
>>
>> Ya no solo una solución para este caso si no en las futuras cosas que me
>> encuentre. ¿Alguno ha usado una librería que solvente este tipo de
>> situaciones?
>>
>
> Como dije antes, supongo que te interesa algo como MFC. Existen otras
> clases envolventes como las ATL al igual que las WTL, las cuales extienden
> las ATL.
>
>
> Espero que esto aclare la duda.
>
> Steven
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140410/52943d84/attachment.html>


Más información sobre la lista de distribución Cconclase