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 

Imagenes en DLL en 2010 Falla, Ayuda

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Imagenes en DLL en 2010 Falla, Ayuda Responder citando

El siguiente código lo tengo en un proyecto de Builder 2007 y me funciana perfectamente, pero ahora al pasarlo al Builder 2010 me dá un error de compilación, y no se como solucionarlo.
Este es el codigo:
Código:

   HINSTANCE TPVBarmanDll;
   TPVBarmanDll = LoadLibrary("TPVBarman.dll");

   if(TPVBarmanDll != 0)// Comprobar si ha cargado la DLL
   {
      Graphics::TBitmap  *Imagen = new Graphics::TBitmap;
      TJPEGImage *Imagen_JPG = new TJPEGImage();


      // Cargamos las imágenes de la DLL en el los Botones del Panel Operador
      Imagen->LoadFromStream(&TResourceStream(reinterpret_cast<int>(TPVBarmanDll), "P_Operador_1", RT_RCDATA));
      frmVentas->BtnCambioCamarero->Glyph->Assign(Imagen);
   }


El error de compilacion me dice que no puede encontrar un semaforo para TResourceStream.
El mensaje de Error de Compilacion:
[/code]
_________________
Muchos hombres no se equivocan jamás porque no se proponen nada razonable.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor
Mensaje    Asunto: Responder citando

Prueba cambiando:
Código:
TResourceStream(reinterpret_cast<int>(TPVBarmanDll), "P_Operador_1", RT_RCDATA)
por:
Código:
TResourceStream(reinterpret_cast<int>(TPVBarmanDll), L"P_Operador_1", reinterpret_cast<wchar_t*>(RT_RCDATA))
o por:
Código:
TResourceStream(reinterpret_cast<int>(TPVBarmanDll), "P_Operador_1", MAKEINTRESOURCEW(10))



https://cppbuilder.es/viewtopic.php?t=13410
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias Leo, ya lo habia solucionado sustituyendo esta linea:
Código:

Imagen->LoadFromStream(&TResourceStream(reinterpret_cast<int>(TPVBarmanDll), "P_Operador_1", RT_RCDATA));


por esta otra:
Código:

Imagen->LoadFromStream(&TResourceStream(reinterpret_cast<int>(TPVBarmanDll), "P_Operador_1", (wchar_t*)RT_RCDATA));


La solución ya estaba en el foro, pero me funciona igual poniendo una L delante de "P_Operador_1" es decir L"P_Operador_1" que si no la pongo.
Puedes explicar para que es la L y si dá igual ponerlo o NO?
GRACIAS.
_________________
Muchos hombres no se equivocan jamás porque no se proponen nada razonable.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor
Mensaje    Asunto: Responder citando

Ahora me surge otro problema, pero esta vez en ejecución, concretamente cuando ejecuto un procedimiento con ->ExecProc()
Código:
// Función para conmprobar articulos conpletos en HistoricoArticulos
int __fastcall ComprobarArticulo_Historico(AnsiString ArtCompleto, short int Familia)
{
   MDatos->IBSPBuscarArtHist->ParamByName("Familia")->AsShortInt = Familia;
   MDatos->IBSPBuscarArtHist->ParamByName("ArtCompleto")->AsString = ArtCompleto;
   MDatos->IBSPBuscarArtHist->ExecProc(); //ME DA UN ERROR EN ESTA LINEA

   return MDatos->IBSPBuscarArtHist->ParamByName("Codigo")->AsInteger;
}


Sale una excepcion diciendo "Unsupported feacture"
Esta funcion la utilizaba con inberbase 2007 y Builder 2007 sin problemas.
Ahora tengo interbase 2009 y Builder 2010.
_________________
Muchos hombres no se equivocan jamás porque no se proponen nada razonable.


Ultima edición por JesúsGandia el Mar 16 Feb, 2010 9:07 pm, editado 1 vez
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor
Mensaje    Asunto: Responder citando

JesúsGandia escribió:
Puedes explicar para que es la L y si dá igual ponerlo o NO?

La 'L' es para indicar que es 'wchar_t' en vez de 'char'.

En este caso si da igual, ya que el argumento que se espera es 'UnicodeString' y esta clase tiene tanto un constructor con 'wchar_t*' como con 'char*'.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

JesúsGandia escribió:
Ahora me surge otro problema, pero esta vez en ejecución, concretamente cuando ejecuto un procedimiento con ->ExecProc()

https://cppbuilder.es/viewtopic.php?p=43584
Volver arriba
Ver perfil de usuario Enviar mensaje privado
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.