DLL TBitmap
-
ich habe folgendes Problem ich will eine dll schreiben, die wie folgt aussieht
#include <jpeg.hpp> #include <vcl.h> extern "C" __declspec(dllexport) int myfun(char * a, char * b){ TJPEGImage *tjp = new TJPEGImage(); Graphics::TBitmap * bmp = new Graphics::TBitmap(); bmp->LoadFromFile(a); tjp->Assign(bmp); tjp->Compress(); tjp->SaveToFile(b); delete bmp; delete tjp; return 1; }fehlermeldung:
[Linker Fatal Error] Fatal: Unable to open file 'GRAPHICS.OBJ'
-
//--------------------------------------------------------------------------- #include <vcl.h> #include <jpeg.hpp> #pragma hdrstop extern "C" __declspec(dllexport) int myfun(char * a, char * b); //--------------------------------------------------------------------------- // Important note about DLL memory management when your DLL uses the // static version of the RunTime Library: // // If your DLL exports any functions that pass String objects (or structs/ // classes containing nested Strings) as parameter or function results, // you will need to add the library MEMMGR.LIB to both the DLL project and // any other projects that use the DLL. You will also need to use MEMMGR.LIB // if any other projects which use the DLL will be performing new or delete // operations on any non-TObject-derived classes which are exported from the // DLL. Adding MEMMGR.LIB to your project will change the DLL and its calling // EXE's to use the BORLNDMM.DLL as their memory manager. In these cases, // the file BORLNDMM.DLL should be deployed along with your DLL. // // To avoid using BORLNDMM.DLL, pass string information using "char *" or // ShortString parameters. // // If your DLL uses the dynamic version of the RTL, you do not need to // explicitly add MEMMGR.LIB as this will be done implicitly for you //--------------------------------------------------------------------------- #pragma argsused int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved) { return 1; } //--------------------------------------------------------------------------- int myfun(char * a, char * b) { TJPEGImage *tjp = new TJPEGImage(); Graphics::TBitmap * bmp = new Graphics::TBitmap(); bmp->LoadFromFile(a); tjp->Assign(bmp); tjp->Compress(); tjp->SaveToFile(b); delete bmp; delete tjp; return 1; }Funktioniert es so?
Liebe Grüße Todd