mal ne frage zu dlls
-
ich schrieb ein 5 seiten programm, und jetzt ist mir eingefallen das ganze als dll wäre viel angenehmer.
da ich aber keine ahnung von dlls habe wäre es klasse, wenn mir einer sagen würde ob es überhaupt möglich ist ein vollständiges c++ programm das als exe lauffähig ist, einfach so in eine dll umzuschreiben.ist das viel arbeit?? läuft das ganze trozdem noch als normales programm ab, wenn ein anderes programm die dll läd ???
danke für die hilfe
-
nö!
-
Ich schiebe dich mal ins WinAPI-Forum, die haben dort mehr Ahnung von Prorgammierung mit DLLs.
MfG SideWinder
-
warum nö???
ich kann doch von einer anwendung die eine dll geladen hat eine funktion von der dll auf rufen , oder ??
wenn ich jetzt einfach von meinem programm das ich änder will, die main() umbenne
zu dlltestmain() oder so.
dann das ganze als dll compiliere, und dann die funktion dlltestmain() starte,
sollte es doch gehen oder ???
-
Natürlich geht das.
Eine Funktion testdllmain() ist kein Problem. Du solltest aber nicht vergessen, sie als extern "C" zu deklarieren und zu exportieren.
Es gibt aber eine Einschränkung:
Das Interface der DLL muss C++-frei sein.D.h.:
1. Du solltest keine Klassen aus der DLL exportieren.
2. Exceptions müssen in der DLL bleiben.
3. Klassen (auch std::string) sollten weder Rückgabewert noch Parameter einer Funktion sein. Nur interne Datentypen und C-structs sollten verwendet werden.p.s.:
"sollten" heißt: Es ist dringend empfohlen, sich daran zu halten, sonst klappt die DLL nicht mit allen Compilern/Sprachen.
-
@cd900
kann man die dann irgendwie (auser am Dateinamen) Markieren, das die (nur) mit C++-Compilern funktionieren
-
Die funktionieren dann eben nicht nur "nur mit C++ Compilern". Die funktionieren ausschließlich mit einem ganz bestimmten Compiler einer ganz bestimmten Version.
Deswegen sollte man es lassen.
Markieren ist nicht, aber man sieht es an den Linkerfehlern, bei Exceptions erst an Laufzeitfehlern.