Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Dave

Alter Hase

  • »Dave« ist der Autor dieses Themas

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

1

04.11.2004, 21:09

Funktionsnamen in Dlls

normalerweise ändert der compiler die funktionsnamen ja ab. aus meineFunktion wird zB ?meineFunktion@XYZ...
ich wollte jetzt aber meine in c++ mit visual studio geschribene dll in delphi verwenden. klappt auch wunderbar, nur muss ich dort den namen der funktion angeben, was dann mit "meineFunktion" natürlich nicht funktioniert, mit "?meineFunktion@XYZ" klappts jedoch wunderbar.
aber es kann ja wohl nicht das wahre sein, bei jeder funktion in die dll zu sehen und zu schauen, wie der compiler meine funktion genannt hat.

gibt ja eigentlich nur zwei möglichkeiten:
entweder ich verhindere, dass meine funktion umbenannt wird, oder ich muss in delphi irgendwie anders an die adresse meiner funktion kommen...

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

2

04.11.2004, 22:00

Such mal nach "mangling" in der Hilfe und schau Dir (unter anderem?) diesen Artikel an:
Article 2. Libraries Made Too Easy
"Games are algorithmic entertainment."

Dave

Alter Hase

  • »Dave« ist der Autor dieses Themas

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

3

05.11.2004, 16:01

das einzige brauchbare was ich zu mangling finde ist: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/vclrfold-stylenamemanglingforexportedtemplateinstantiations.asp
geht aber ums überladen von funktionen und das umbenennen des compilers was man manuell mehr oder weniger unterbinden kann ( den letzten satz hab ich nicht ganz verstanden)...

den genannten artikel finde ich leider nicht. kannst du nen link posten?

danke.

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

4

05.11.2004, 17:37

Sorry, ist aus der lokalen Hilfe
"Games are algorithmic entertainment."

5

05.11.2004, 19:03

In C++ gibt es die Funktion "UnDecorateSymbolName". Ist allerdings nur für C++. Müste man also auch erst einmal in eine DLL packen.

Es gibt daher eigentlich nur zwei Wege. Entweder du machst aus deinen Funktionen reine C-Funktionen (extern "C"), oder du packst alles in eine Klasse und mit netten Virtuellen Funktionen. Das geht immer.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige