| |
|
|
Jac de Lad | Der Titel sagts schon. Ähhhm, hat jemand vielleicht ein (sinnvolles) Beispiel?
Der Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 13.11.2007 ▲ |
|
|
|
|
Jörg Sellmeyer | Wenn Du z.B. die Listview.dll von Frank benutzt: KompilierenMarkierenSeparieren Jetzt kannst Du alle Funktionsdefinitionen in der Includedatei auskommentieren und hast 40 Zeilen in Deinem Programm gespart - abgesehen von der größeren Sicherheit und Geschwindigkeit beim Zugriff auf die Funktionen. Du kannst jetzt alle Funktionen mit dem Zusatz LV aufrufen:
LVCreateListview(...)
Saluto Jörg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 13.11.2007 ▲ |
|
|
|
|
Jac de Lad | Ah, ok, jetzt versteh ichs.
Danke, Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 14.11.2007 ▲ |
|
|
|
|
Jac de Lad | |
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 14.11.2007 ▲ |
|
|
|
|
Jac de Lad | Und die Variable hdll& brauche ich dann, um die DLL wieder mit FreeDLL freizugeben??
Und wie ist das mit ImportFunc()? Ist die Variable da überhaupt nötig? Soweit ich gelesen habe ist das die Addresse der Funktion, das potrebbe nur selten notwendig sein. |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 14.11.2007 ▲ |
|
|
|
|
Jörg Sellmeyer | Jac
Und die Variable hdll& brauche ich dann, um die DLL wieder mit FreeDLL freizugeben??
Genau.
Jac
Und wie ist das mit ImportFunc()? Ist die Variable da überhaupt nötig? Soweit ich gelesen habe ist das die Addresse der Funktion, das potrebbe nur selten notwendig sein.
Das ersetzt quasi die frühere Anmeldung einer einzelnen Funktion mit Def. Wenn Du also aus einer Dll nur eine, b.z.w. wenige Funktionen benötigst, kann es evtl. sinnnvoll sein, diese mit ImportFunc(hDll&,Name$,Alias$) einzubinden. Vorher mußt Du dann aber wieder UseDll einsetzen. Wenn Du noch (aus welchen Stabilire auch immer) Call einsetzen willst, brauchst Du das Handle, sonst ist es wahrscheinlich unwichtig. Ich glaube kaum, daß man die einzelnen Funktionen wieder irgendwie freigeben muß. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 14.11.2007 ▲ |
|
|
|
|
Jac de Lad | Aber es ist doch umständlicher, wenn ich erst die DLL laden muss und dann wieder freigeben muss, als wenn ich Def nehme... |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 14.11.2007 ▲ |
|
|
|
|
Jörg Sellmeyer | Schon, aber Profan greift schneller auf die Funktion zu und ist sicherer gegen Hacker geschützt. Lies Dir mal diesen Thread dazu durch: [...] |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 14.11.2007 ▲ |
|
|
|
|
Jac de Lad | Aha. Aber wieso ist das sicherer gegen Hacker? Selbst wenn die DLL statisch gelinkt ist hilft es nicht, wenn sie manipuliert ist... |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 14.11.2007 ▲ |
|
|
|
|
Nico Madysa | Ich hab das so verstanden, dass die meisten Hacker versuchen, das Programm, während es abläuft, umzuleiten zu einer falschen Funktion. Wenn das Programm die Funktionen, die es braucht, bereits am Anfang zusammensammelt, ist das unmöglich. iF, Frank, hab ichs richtig erklärt? |
|
|
| |
|
|
|
RGH | Jac
Aber es ist doch umständlicher, wenn ich erst die DLL laden muss und dann wieder freigeben muss, als wenn ich Def nehme...
Das DEF ist ja nur eine Definition. Erst beim Aufruf wird die DLL geladen, die Funktion corsa und die DLL wieder entladen. Sobald man die DLL-Funktion bzw. andere Funktionen aus derselben DLL öfter benutzt, wird die DLL unnötig oft geladen und entladen, was beides relativ viel Zeit kostet. Und wenn man die DLL-Funktion nur einmal aufrufen will, geht es noch einfacher mit der External-Funktion.
Außerdem gibt es etliche DLL mit eigener Datenhaltung, etwa per Einstellungen. Diese müssen vor ihrem ersten Aufruf auch bei Definition mit DEF mit UseDLL geladen werden und nach dem letzten Aufruf wieder entladen.
Saluto Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 14.11.2007 ▲ |
|
|
|
|
Jac de Lad | Aha, ok.
@Nico: Nichts ist unmöglich! |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 14.11.2007 ▲ |
|
|
|