Frage zu dll

06/16/2011 15:54 marking1#1
Ich habe ein Frage zu dll Dateien man kann doch verschiedene Funktionen die man mit einer exe machen kann auch in einer dll Datei aufrufen?

So jetzt kommt meine Frage:
1.Wie mache ich einfach nur hello world in einer dll datei?
2.Wie führe ich die dann aus?
06/16/2011 17:04 xNopex#2
Quote:
2.Wie führe ich die dann aus?
Eine Dll läuft nicht eigenständig. Sie muss von einem Prozess geladen werden und der Prozess führt dann seinerseits die exportierten Funktionen aus der Dll aus.

Quote:
1.Wie mache ich einfach nur hello world in einer dll datei?
Code:
#include <windows.h>
#include <iostream>

extern "C" __declspec(dllexport) void __stdcall HelloWorld()
{
    std::cout << "Hello World";
}

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
    return TRUE;
}
EDIT:
Quote:
Ich habe ein Frage zu dll Dateien man kann doch verschiedene Funktionen die man mit einer exe machen kann auch in einer dll Datei aufrufen?
Ich weiß nicht, was du da jetzt genau meinst, aber ich sage einfach mal: Nein.
06/16/2011 18:25 marking1#3
Ja danke ich hab jetzt noch eine frage mit welchen Code kann ich die daten von einer dll datei laden oder ausführen?
06/16/2011 18:38 xNopex#4
Indem du gegen die Objekt-File-Library (*.lib/*.a) linkst und einen Header mit den Prototypen der Funktionen in deinem Projekt inkludierst.
06/16/2011 18:47 MrSm!th#5
Oder GetProcAddress+LoadLibrary
06/16/2011 18:50 xNopex#6
Ich find das aber dann so umständlich mit den Funktionszeigern. War da noch nie ein Fan von :)
Aber natürlich hat MrSmith recht. Um vermutlich afkommenden Fragen vorzubeugen und da ich denke, dass du MrSmith's Methode bevorzugen wirst:
[Only registered and activated users can see links. Click Here To Register...]
06/19/2011 01:08 SmackJew#7
Sobald die Dll in den Prozess geladen ist, brauchst du ohnehin nicht mehr differenzieren. Ob du die gewünschte Funktion aus der main()/WinMain() oder der DllMain() aufrufst ist im Grund egal, solange du dem Compiler alles schlüssig füttern kannst.