Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
22.09.2001, 19:51
Hanky



moinsen,

habe ne kleine Frage: wie codet man eine Funktion, die eine zum programm passende DLL laden soll??

und: wie mussich diese dll anfangen zu coden?

Sprache: c++
Progg: ms c++ 6.0

danke :)

--

hankYs Page

zum Seitenanfang zum Seitenende Profil || Suche
001
22.09.2001, 21:45
Archangel



also, da gibts 2 möglichkeiten:

Du erstellst ein dll projekt (Win32 dynamic linked library), erstellst source files und header files
vor die funktionen, die du aus der dll exportieren willst schreibst du __declspec(dllexport)

und kompilierst

nun möglichkeit 1:
Du verschiebst die *.lib datei in dein msvc\lib dir, die *.dll in das verzeichnis deines projekts, was die dll nutzt und fügst bei projekteinstellungen\Linker bei den *.lib files deine *.lib hinzu..
nun includest du die header datei mit den exportierten funks, und das wars eigentlich auch schon, du kannst die funktion dann einfach so aufrufen

2. möglichkeit:
du includest die windows.h, schreibst hin HINSTANCE hLibrary = LoadLibrary("deine.dll");

nun erstellst du einen zeiger auf eine funktion mit dem namen <lokaler funktionsname>:
<rückgabetyp> <(*lokaler funktionsname)><(parameter ohne namen)> = (<rückgabetyp> (*)(<parameter ohne namen>))GetProcAddress(hLibrary, "<funktionsname in der dll>");

nun kannst du die funktion mit <lokaler funktionsname>(parameter) aufrufen...

der vorteil:
die *.dll muss nicht im \system oder im verzeichnis der .exe sein, sondern du musst einfach nur bei LoadLibrary() den pfad+namen angeben

am ende des proggis musst du noch FreeLibrary(hLibrary); schreiben
kA ob das alles klappt, das war jetzt das was ich im kopf hatte

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005


Dieser Beitrag wurde am 22.09.2001 um 23:15 von Archangel bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
22.09.2001, 22:37
Zeeke



Öhm... Arch.... irgendwie bezweifele ich langsam, dass du wirklich erst 13 bist *g*

--

zum Seitenanfang zum Seitenende Profil || Suche
003
23.09.2001, 11:00
Rapsyx



alles Cheater hier,alles voller Cheater lol =D
Ich bin fast 17 und kenn mich damit überhaupt nicht aus,das macht mich irgendwie...... ...wütend.... *g*

--

zum Seitenanfang zum Seitenende Profil || Suche
004
23.09.2001, 18:49
Hanky



THX!!!!

bin 16...:P

--

hankYs Page

zum Seitenanfang zum Seitenende Profil || Suche
005
24.09.2001, 16:42
Mazze



Bei mir wird gar keine Lib-datei erstellt!

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
006
24.09.2001, 16:44
Archangel



hast du die __declspec(dllexport) 's in ner header vor den funktionsnamen und diese auch in eine der dateien includet?

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
007
24.09.2001, 19:30
Mazze



Ahm. Das ist nicht mein Problem!
Wenn ich in MSVC 6.0 eine Dll erstelle, dann wird keine *.lib Datei miterstellt!
Ist vielleicht eine blöde Frage, aber ich weiß nicht, wie man die Lib-datei macht!
Includen und den anderen scheiss müsste ich schon hinkriegen!

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
008
24.09.2001, 19:33
Archangel



das ist sehr wohl dein problem
wenn msvc keine funktionen, die exportiert werden können, findet, dann wird auch keine .lib datei erstellt

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
009
25.09.2001, 19:59
Mazze



Oh, sorry!
Es funktioniert jetzt!

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche