Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   DLL im VS erstellen (https://www.delphipraxis.net/109839-dll-im-vs-erstellen.html)

xaromz 8. Mär 2008 18:59


DLL im VS erstellen
 
Hallo,

ich habe gerade ein kleines Problem. Ich erstelle eine DLL in VS2008, die ein paar Funktionen bereitstellt. Leider kann ich diese nicht über den Namen importieren, sondern nur über den Index. Ich vermute, ich muss im VS irgendetwas einstellen, die Namen werden nämlich reinkompiliert. Kann mir da jemand helfen?

Auszug von BINDUMP:
Code:
    ordinal hint RVA     name

          1    0 00001010 ?closeDictionary@@YAHXZ = ?closeDictionary@@YAHXZ (int __cdecl closeDictionary(void))
          2    1 000010D0 ?currentCodePage@@YAPADXZ = ?currentCodePage@@YAPADXZ(char * __cdecl currentCodePage(void))
          3    2 000010F0 ?hyphenLength@@YAHPAD@Z = ?hyphenLength@@YAHPAD@Z (int __cdecl hyphenLength(char *))
          4    3 000011A0 ?hyphenate@@YAHPAD0@Z = ?hyphenate@@YAHPAD0@Z (int __cdecl hyphenate(char *,char *))
          5    4 00001040 ?initializeDictionary@@YAHPAD@Z = ?initializeDictionary@@YAHPAD@Z (int __cdecl initializeDictionary(char *))
DLL:
Code:
__declspec(dllexport) int initializeDictionary(char* dictionary);
__declspec(dllexport) int closeDictionary();
__declspec(dllexport) char* currentCodePage();
__declspec(dllexport) int hyphenLength(char* word);
__declspec(dllexport) int hyphenate(char* word, char* hyphenated);
Import:
Delphi-Quellcode:
function closeDictionary: Integer; cdecl; external 'hyphenate.dll' name 'closeDictionary';
function initializeDictionary(Dictionary: PChar): Integer; cdecl; external 'hyphenate.dll' name 'initializeDictionary';
function currentCodePage: PChar; cdecl; external 'hyphenate.dll' name 'currentCodePage';
function hyphenLength(Word: PChar): Integer; cdecl; external 'hyphenate.dll' name 'hyphenLength';
function hyphenate(Word, Hyphenated: PChar): Integer; cdecl; external 'hyphenate.dll' name 'hyphenate';
Gruß
xaromz

xaromz 8. Mär 2008 19:17

Re: DLL im VS erstellen
 
Hallo,

hat sich erledigt. Einfach extern "C" vor den Export setzen.

Warum findet man eigentlich immer dann die Lösung, wenn man nach stundenlanger Suche im Netz postet :? ?

Gruß
xaromz


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz