.dll aufrufen (von C aus)
Verfasst: Di Jan 15, 2013 10:47 am
Guten Tag,
ich bin hier neu, wie man sicher schnell bemerkt.
Meine Frage bezieht sich auf einen .dll-Aufruf.
Wenn ich nicht falsch informiert bin, dann kann ich mit LoadLibrary, GetProcAdress etc. auf Funktionen innerhalb einer .dll zugreifen.
Was ich nicht ganz verstanden habe, ist die Typdefinition
ich glaube jedenfalls, dabei handelt es sich um sowas wie "Prototyping", bin aber nicht ganz sicher.
Wichtiger ist für mich aber eh:
1) Kann man grundsätzlich jede "Teilfunktion" einer .dll von einem anderen Programm aus aufrufen, oder müssen die Funktionen die zugänglich sind, explizit "exportiert" worden sein, also schon vor dem kompilieren der .dll feststehen ?
In C geschriebene .dll's exportieren explizit, wenn ich das was ich in diversen beispielen so lese richtig deute. Ich plage mich aber mit in Fortran (?) geschriebenen .dll's herum und weiss gar nicht, was da passiert.
Gibt es da einen Unterschied (ausser "CALL BY REFERENCE") ?
Ich habe nämlich schonmal versucht auf Teilfunktionen zuzugreifen, aber es gelang nicht oder es gelang, je nach Funktion.
2) Wo ist der Unterschied zwischen FUNCTION und SUBROUTINE ( in einer DLL ) aus der Sicht eines C Programms ? ( Ich weiss, die Frage poste ich mal besser im FORTRAN - Forum ... ich dachte nur... wegen der Staubschicht ... )
So, das Ganze ist erstmal vielleicht wenig konkret, aber schonmal danke fürs lesen,
Gruss,
schoess
ich bin hier neu, wie man sicher schnell bemerkt.
Meine Frage bezieht sich auf einen .dll-Aufruf.
Wenn ich nicht falsch informiert bin, dann kann ich mit LoadLibrary, GetProcAdress etc. auf Funktionen innerhalb einer .dll zugreifen.
Was ich nicht ganz verstanden habe, ist die Typdefinition
Code: Alles auswählen
double* (__stdcall* AFCN)(int*, double*)
Wichtiger ist für mich aber eh:
1) Kann man grundsätzlich jede "Teilfunktion" einer .dll von einem anderen Programm aus aufrufen, oder müssen die Funktionen die zugänglich sind, explizit "exportiert" worden sein, also schon vor dem kompilieren der .dll feststehen ?
In C geschriebene .dll's exportieren explizit, wenn ich das was ich in diversen beispielen so lese richtig deute. Ich plage mich aber mit in Fortran (?) geschriebenen .dll's herum und weiss gar nicht, was da passiert.
Gibt es da einen Unterschied (ausser "CALL BY REFERENCE") ?
Ich habe nämlich schonmal versucht auf Teilfunktionen zuzugreifen, aber es gelang nicht oder es gelang, je nach Funktion.
2) Wo ist der Unterschied zwischen FUNCTION und SUBROUTINE ( in einer DLL ) aus der Sicht eines C Programms ? ( Ich weiss, die Frage poste ich mal besser im FORTRAN - Forum ... ich dachte nur... wegen der Staubschicht ... )
So, das Ganze ist erstmal vielleicht wenig konkret, aber schonmal danke fürs lesen,
Gruss,
schoess