Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Problem mit DLL!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.06.2006, 20:05 Uhr
~Schimanski
Gast


Hallo!

Ich habe ein Problem!
Wenn ich in Borland 6 Enterprise mit dem dll-Wizard eine dll erstelle!

und diese dann in einem neuen Projekt Lade und in diesem Projekt 'Build with runtime Packages' deaktiviere, dann funktioniert das prog auch (also es läd die dll und läd die funktion aus der dll), ABER wenn ich es auf einen anderen Computer öffne (ohne Borland und anderen c++ Builder), dann spuckt er mir aus: vcl60.bpl & rtl60.bpl wurden nicht gefunden/fehlen! Dabei habe ich diese mit eingebunden (NUR im Projekt nicht im DLL-Project)

Nun habe ich den Verdacht, dass ich in dem DLL-Projekt AUCH 'Build with runtime Packages' deaktivieren muss, aber wenn ich das mache, dann kommen Fehler in der 'UNIT1.OBJ' Ich habe keine Ahnung warum!

Nun, habt ihr eine IDEE, wie ich diese Problem lösen kann?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.06.2006, 20:05 Uhr
~Schimanski
Gast


Hier der code für die DLL:


Code:


//---------------------------------------------------------------------------

#include <vcl.h>
#include <windows.h>
#pragma hdrstop
//---------------------------------------------------------------------------
//   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;
}
extern "C" __declspec(dllexport) Sshot(char *pfad)
{
unsigned char* pBuffer;
int result, palette_size;
Graphics::TBitmap *Image = new Graphics::TBitmap();

HDC window = GetWindowDC(NULL);
HDC HScreenDC = GetDC(0);
Image->Handle = CreateCompatibleBitmap(HScreenDC, Screen->Width, Screen->Height);
result = GetDeviceCaps(HScreenDC, RASTERCAPS);

if (result & RC_PALETTE)
{
palette_size = GetDeviceCaps(HScreenDC, SIZEPALETTE);

if (palette_size == 256)
{
const size_t size = sizeof(LOGPALETTE) + 255 * sizeof(PALETTEENTRY);
pBuffer = new unsigned char[size];
LPLOGPALETTE palette = reinterpret_cast<LPLOGPALETTE>(pBuffer);

palette->palVersion = 0x300;
palette->palNumEntries = 256;
GetSystemPaletteEntries(HScreenDC, 0, 256, palette->palPalEntry);

Image->Palette = CreatePalette(palette);

delete [] pBuffer;
}
}
ReleaseDC(0, HScreenDC);
BitBlt(Image->Canvas->Handle, 0, 0, Image->Width, Image->Height, window, 0, 0, SRCCOPY);
Image->SaveToFile(pfad);
}

//---------------------------------------------------------------------------





Wenn ich den nun Compiliere, dann kommen folgende Fehler:

[Linker Error] Unresolved external 'Graphics::TBitmap::' referenced from CUNIT1.OBJ

[Linker Error] Unresolved external '__fastcall Graphics::TBitmap::TBitmap()' referenced from CUNIT1.OBJ

[Linker Error] Unresolved external '__fastcall Forms::TScreen::GetHeight()' referenced from CUNIT1.OBJ

[Linker Error] Unresolved external 'Forms::Screen' referenced from CUNIT1.OBJ

[Linker Error] Unresolved external '__fastcall Forms::TScreen::GetWidth()' referenced from CUNIT1.OBJ

[Linker Error] Unresolved external '__fastcall Graphics::TBitmap::SetHandle(unsigned int)' referenced from
CPROGRAMME\BORLAND\CBUILDER6\LIB\RELEASE\VCLE.LIB|_t_Graph

[Linker Error] Unresolved external '__fastcall Graphics::TBitmap::GetCanvas()' referenced from CUNIT1.OBJ

[Linker Error] Unresolved external '__fastcall Graphics::TCanvas::GetHandle()' referenced from CUNIT1.OBJ

THX im Voraus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.06.2006, 20:06 Uhr
~Schimanski
Gast


Könnt ihr mir helfen??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.06.2006, 22:13 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ich denke mal für die T*-sachen brauchste noch eine spezielle borland-lib die du mitlinken musst, weiß aber nicht wie die da heißt, evtl mal die linkereinstellungen mit einem "normalen" programm vergleichen, dann siehste ja was das so noch einbindet
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: