| Angel.Matilla |
24-10-2025 18:02:42 |
Tengo un problema al descargar una imagen
La imagen está guardada en una tabla de una BB.DD. en Firebird. A ver si alguien me ayuda porque estoy más perdido que, como dice Alberto Chicote, un cerdo en una perfumería. Estoy compilando un proyecto y me da este error:
Cita:
[Linker Error] Unresolved external 'BLOBtoJPG(Db::TBlobField *)' referenced from C:\TPV\DATFIJ.OBJ
|
En el formulario en que da el error tengo este código:
Código:
extern TJPEGImage* BLOBtoJPG(TBlobField *CampoBLOB);
y llamo a la función así:
Código:
TImage *Imagen = static_cast<TImage *>(Source);
Imagen->Picture->Assign(BLOBtoJPG(static_cast<TBlobField*>(fMenu->Query->FieldByName("Imagen"))));
y en el formulario donde la llamo están estos includes:
Código:
#include <vcl.h>
#include <memory>
#include <olectl.h>
#include <jpeg.hpp>
En un módulo que tengo para todas estas funciones que se usan en varios sitios la función está declarada así:
Código:
TJPEGImage* BlobtoJPG(TBlobField *CampoBLOB)
{
if (!CampoBLOB->Value.IsEmpty())
{
TJPEGImage *JPeg = new TJPEGImage;
TMemoryStream *StreamTmp = new TMemoryStream;
CampoBLOB->SaveToStream(StreamTmp); //sacamos el jpg y se convierte a stream
StreamTmp->Seek(0, soFromBeginning);
JPeg->LoadFromStream(StreamTmp);
return(JPeg);
}
else
return(NULL);
}
Esta función, y otras varias, estoy harto de usarlas con este mecanismo (definirlas en un fichero cpp y llamarlas con la declaración extern) desde hace mucho tiempo y no me ha dado error nunca, pero no sé cual es el problema, no soy capaz de verlo.
|