AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

VC-Dll Projekt im BCB kompilieren

Ein Thema von static_cast · begonnen am 5. Mai 2007 · letzter Beitrag vom 6. Mai 2007
Antwort Antwort
static_cast

Registriert seit: 19. Okt 2003
Ort: Peine
300 Beiträge
 
#1

VC-Dll Projekt im BCB kompilieren

  Alt 5. Mai 2007, 12:55
Hallo,

ich versuche gerade mein VisualStudio Projket im Borland Builder 2006 zu kompilieren, das geht auch soweit gut bis ich dann
Zitat:
"Do not prefix underbars to exported symbol names (-vu)"
anschalte, ab dann mag der Linker nicht mehr tun. Es kommt bei jedem Export
Zitat:
"[Linker Error] Error: Public symbol for EXPDEF '<exportname>' not found in module <file>"
hat jemand eine Idee?

Nachtesten lässt es sich auch ganz einfach in einem neuen Projekt, einfach New->Other->DLL, als C++ ohne VCL, aber Multithreaded und VC++ Style.

Code:
//---------------------------------------------------------------------------

#include <windows.h>

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

#define DllExport extern "C" __declspec(dllexport)

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

DllExport int BCBTest()
{
    return 1234;
}

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

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)
{
    return 1;
}

//---------------------------------------------------------------------------
Gruß,
Daniel
Daniel M.
"The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore."
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#2

Re: VC-Dll Projekt im BCB kompilieren

  Alt 5. Mai 2007, 12:59
Verwendest du ein .def File? Das sollte man immer machen (zumindest bei VS).
  Mit Zitat antworten Zitat
static_cast

Registriert seit: 19. Okt 2003
Ort: Peine
300 Beiträge
 
#3

Re: VC-Dll Projekt im BCB kompilieren

  Alt 5. Mai 2007, 13:09
Nein eine def Datei liegt nicht vor, nich im VS und naja ergo nicht im BCB, das war eh ein Kramp die ganzen Sachen in ein BCB Projket zu bekommen, aber das ist ja eine andere Geschichte

Kann die def Datei nicht vom VS erstellt werden?
Daniel M.
"The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore."
  Mit Zitat antworten Zitat
DMW

Registriert seit: 6. Sep 2006
Ort: Münster
269 Beiträge
 
Delphi XE Professional
 
#4

Re: VC-Dll Projekt im BCB kompilieren

  Alt 5. Mai 2007, 13:30
Zitat von Robert Marquardt:
Verwendest du ein .def File? Das sollte man immer machen (zumindest bei VS).
Beim BCB nicht.

Warum willst du keine Unterstricht vor Symbolnamen haben? Das ist C-Konvention. Und wenn du die Option im DLL-Projekt anschaltest, mußt du sie auch in den Projekten aktivieren, in welchen du die DLL benötigst.
Moritz
  Mit Zitat antworten Zitat
static_cast

Registriert seit: 19. Okt 2003
Ort: Peine
300 Beiträge
 
#5

Re: VC-Dll Projekt im BCB kompilieren

  Alt 5. Mai 2007, 13:50
Das hat wohl weniger was mit wollen zu tun, sondern eher mit der Kompatibilität zu der Anwendung die die Dll verwendet.
Daniel M.
"The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore."
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#6

Re: VC-Dll Projekt im BCB kompilieren

  Alt 5. Mai 2007, 17:29
Kriegt man bei VS es ueberhaupt hin das der Export ohne Unterstrich und dem @xx (xx = Anzahl Bytes der Parameter) ohne .def File funktioniert?
Ein .def File kann man sich selber schreiben. Das Format is wirklich simpel. scha mal in der Hilfe nach. es duerfte dort beschrieben sein.
  Mit Zitat antworten Zitat
static_cast

Registriert seit: 19. Okt 2003
Ort: Peine
300 Beiträge
 
#7

Re: VC-Dll Projekt im BCB kompilieren

  Alt 5. Mai 2007, 19:37
Das name decoration hat etwas mit der calling convention und das es als extern "C" deklariert ist zu tun, aber das ist ja auch nicht mein problem

Sobald ich den "-vu" Schlater wieder wegnehme wird die Library einwandfrei erzeugt, wieso? Nur dann kann sie auch nicht mehr von der Anwendung geladen werden weil alle exports prefixt sind. Ich verzweifel hier noch...
Daniel M.
"The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore."
  Mit Zitat antworten Zitat
DMW

Registriert seit: 6. Sep 2006
Ort: Münster
269 Beiträge
 
Delphi XE Professional
 
#8

Re: VC-Dll Projekt im BCB kompilieren

  Alt 6. Mai 2007, 10:05
Welche Aufrufkonvention benutzt das Programm, das die DLL verwendet? Möglicherweise __stdcall? Da wird gewöhnlich kein Unterstrich vorangesetzt...
Moritz
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz