Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

error wchar, hasta el mismisimo.... :(

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: error wchar, hasta el mismisimo.... :( Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: mas bugs o cosas raras. Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Dirección AIM
Mensaje    Asunto: Responder citando

Estupendo,

Muchas gracias, me lo apunto.

Un abrazo.

Carlos
_________________
Carlos J. Fernandez
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.