| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
ZHAX1 Master

Registrado: 09 Mar 2007Mensajes: 191
|
Publicado: Lun 01 Mar, 2010 10:54 am Asunto: error wchar, hasta el mismisimo.... :( |
|
|
Creo un proyecto nuevo, añado un archivo que uso en todos mis proyecto y contiene la siguiente instrucción.
HINSTANCE hLib = LoadLibrary("thsntp.dll");
Al compilar obtengo el siguiente error:
BCC32 Error] auxiliar.cpp(312): E2034 Cannot convert 'const char *' to 'const wchar_t *'
No entiendo ese error, primero porque me sale = con maps to char que con maps to wchar
y no entiendo porque da error siquiera ya que supongo que wchar_t * tiene que poder recibir una cadena "cadena" de este tipo.
Si todo el archivo auxiliar.cpp para solucionar errores seguro que me cascaran el resto de mis proyectos.
En definitiva, ayudar por favor porque el unicode va a acabar conmigo.
Saludos. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 01 Mar, 2010 4:00 pm Asunto: |
|
|
| ZHAX1 escribió: | | porque me sale = con maps to char que con maps to wchar | Esto no es correcto, si ocurre y estamos seguros de que lo estamos cambiando en el lugar adecuado, está claro que esa instalación del Builder no está correcta..
Cuando "MENU: Project -> Options... -> Directories and Conditionals -> _TCHAR maps to:" esta como "char", deberia funcionar tal como esta, nos aseguramos de que lo estamos cambiando en el lugar adecuado y que tenemos todas las actualizaciones.
Cuando esta como "wchar_t" lo ponemos asi:
HINSTANCE hLib = LoadLibrary(L"thsntp.dll");
Y si queremos que funcione igual en los dos casos e incluso en cualquier versión anterior podemos ponerlo de esta manera:
HINSTANCE hLib = LoadLibrary(TEXT("thsntp.dll")); |
|
| Volver arriba |
|
 |
ZHAX1 Master

Registrado: 09 Mar 2007Mensajes: 191
|
Publicado: Lun 01 Mar, 2010 6:05 pm Asunto: mas bugs o cosas raras. |
|
|
tools->Options->c++ Options->project properties->_TCHAR maps to "wchar_t"
Builder 2010 original, perfectamente (en teoria) actualizado e instalado.
| Cita: | Además tengo un problema nuevo, que si eso lo pongo en otro hilo y, tengo que probar si me pasa lo mismo en casa( ahora estoy en la oficina).
El problema viene siendo al trabajar con hilos, y me viene pasando solo con builder 2010, si estoy en debug, con un solo hilo creado,(ya no digamos con varios) y uso break points y voy instruccion a instruccion con f8 no hay problema, pero como pulse f9 el builder se vuelve loco y me paraliza el windows entero teniendo en la mayoria de los casos tener que reiniciar.
Decir que el hilo esta bien programado y tanto usando f8 como ejecutando el programa solo, funciona perfectamente, el problema viene dado cuando paras en un punto y usas f9, en el método execute tengo varios bucles.
|
Gracias por la aclaración y paciencia, con el uso de L y TEXT, con las cadenas, otra vez, me falla la memoria.
Saludos. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 01 Mar, 2010 6:32 pm Asunto: |
|
|
Pues por lo que se ve, aparentemente si que estamos confundiendo el lugar.
- Este lugar es el que afecta al proyecto actual:
MENU: Project -> Options... -> Directories and Conditionals -> "_TCHAR maps to:"
- Este lugar no afecta en nada al proyecto actual, es por si queremos que los proximos proyectos (por comodidad) tomen el lugar anterior con lo que pongamos aquí:
MENU: Tools -> Options... Environment Options -> Project Properties -> "_TCHAR maps to:"
Cuando usemos funciones del API, poner los literales entre "TEXT()" es la forma preferida, ya que esto hará que use "L" o no, según si estamos enlazando el API Ansi o Unicode. Es la forma usada también por otros compiladores de C++ (y es compatible con todas versiones de C++Builder, hasta las más antiguas). |
|
| Volver arriba |
|
 |
ZHAX1 Master

Registrado: 09 Mar 2007Mensajes: 191
|
Publicado: Lun 01 Mar, 2010 11:32 pm Asunto: |
|
|
MENU: Project -> Options... -> Directories and Conditionals -> "_TCHAR maps to:"
he revisado esto y no lo encuentro en mi builder.
EDITADO: Lo encontre, está el primero en la lista.... Gracias Leo por todo, intentaré no molestarte mucho mas. |
|
| Volver arriba |
|
 |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Jue 28 Nov, 2013 12:39 pm Asunto: |
|
|
Leo,
Tengo el mismo problema, la linea que me da problemas es:
DrawText(StringGrid1->Canvas->Handle, StringGrid1->Cells[ACol][ARow].c_str(),StringGrid1->Cells[ACol][ARow].Length(), &Rect,DT_SINGLELINE |DT_RIGHT | DT_RIGHT | DT_END_ELLIPSIS);
En la linea "MENU: Project -> Options... -> Directories and Conditionals -> _TCHAR maps to:"
Si no pongo nada o si pongo "char" me da el error:
[bcc32 Error] Tipo.cpp(61): E2034 Cannot convert 'wchar_t *' to 'const char *'
Y si pongo "wchar_t" me da el error:
[ilink32 Error] Error: Unresolved external 'wWinMain' referenced from D:\BORLAND\RAD STUDIO\10.0\LIB\WIN32\RELEASE\C0W32W.OBJ
Que puedo hacer? es que ya no se me ocurren más cosas.
Un abrazo.
Carlos _________________ Carlos J. Fernandez |
|
| Volver arriba |
|
 |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Jue 28 Nov, 2013 12:50 pm Asunto: |
|
|
Leo,
Al final he creado un nuevo proyecto, he incluido todos los formularios y funcionar todo perfectamente.
Un abrazo.
Carlos _________________ Carlos J. Fernandez |
|
| Volver arriba |
|
 |
frios Lt

Registrado: 20 Nov 2005Mensajes: 79Ubicación: España
|
Publicado: Jue 28 Nov, 2013 2:33 pm Asunto: |
|
|
Hola Carlos,
no es necesario que crees un nuevo proyecto para pasar los formularios.
Simplemente con abrir el .cpp principal del proyecto veras la línea
| Código: | WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) |
que has de modificar por
| Código: | WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int) |
e incluir la directiva
#include <tchar>
Claro, que sin olvidar de cambiar que el tipo _TCHAR apunte de "char" a "wchar_t"
Saludos
Félix |
|
| Volver arriba |
|
 |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Jue 28 Nov, 2013 4:57 pm Asunto: |
|
|
Estupendo,
Muchas gracias, me lo apunto.
Un abrazo.
Carlos _________________ Carlos J. Fernandez |
|
| Volver arriba |
|
 |
|