| |
|
|
- Página 1 - |
|
| Wer en su Anwendung con sicherheitstechnisch sensiblen Daten hantiert, debería muy genau en Nutzung el Profanfunktion @Externo nachdenken.
|
|
|
| |
|
|
|
| |
|
- Página 1 - |
|
| Wenn I, con DEF el externe Función al Anfang meines Programmes deklariere, wann se entonces el dagehörige Sprungadresse ermittelt? Beim nächsten Aufrufen el Función en el Programa oder en Deklaration?
Wird esta Sprungadresse irgendwann ermittelt, während mein Prozess se ejecuta, kann Yo en el geladenen Programa el Exporttables el DLL ändern y así el aufgerufenen Características abgreifen. Wird el Adresse beim Laden des Programmes al Anfang meines Quelltextes ermittelt, va el no así simplemente.
Es en keiner Weise gegen Profano, son Gedanken para Programmieren schlechthin... |
|
|
| |
|
|
|
RGH | Apéndice:
Einen Diferencia en DLL-Aufrufen hay (allerdings no en un XProfan-Programa):
DLL puede statisch y dynamisch gelinkt voluntad:
statisch: Hier voluntad igual beim Programmstart el DLL geladen y el Funktionsadressen gelesen, así dass en späteren Aufrufen, esta ya disponible posición. Vorteil: Ist algo más rápido y el meisten Programmiersprachen (z.B. Delphi) einfacher a programa. Nachteil: Wenn el DLL y/oder Características no disponible son, startet el Programa no y Windows meldet, daß una para Ausführen des Programmes notwendige DLL fehlt. Como el OpenGL-DLL en allen de XProfan unterstützten Systemen (de Windows 95/NT 3.51) disponible son, estos en XProfan statisch gelinkt.
dynamisch: Hier voluntad el DLL sólo geladen y el Funktionsadressen ermittelt, si ellos en el Programa aufgerufen voluntad. Vorteil: Wenn cierto Funktionalitäten vom Anwender no benötigt voluntad, braucht él auch no el DLL en seinem Rechner haben. Un Fehlermeldung kommt sólo, si la entsprechende Funktionalität aufgerufen se. Nachteil: Es una bastante klein wenig langsamer y z.B. en Delphi algo aufwändiger a implementieren. El ODBC-DLL para el SQL-Schnittstelle Yo en XProfan dynamisch gelinkt. XProfan startet also auch en Systemen sin installierte ODBC-Treiber (z.B. Win95/98 sin MS-Office) völlig problemlos, producido aber una Fehlermeldung, si uno en solchen Systemen una SQLInit intenta.
Im XProfan-Programa voluntad para todos con DEF, EXTERNAL oder CALL erzeugten DLL-Aufrufen el notwendigen DLL dynamisch gelinkt. (Das wäre beim Interpreter auch nada anders posible, como dieser sí no wissen kann, qué para Schweinereien el geschätzte Programmierer alles con ihm programa voluntad.)
Saludo 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 | 09.10.2006 ▲ |
|
|
|
|
RGH | [quote:b7f9a07702=Andreas Hötker]Wenn I, con DEF el externe Función al Anfang meines Programmes deklariere, wann se entonces el dagehörige Sprungadresse ermittelt? Beim nächsten Aufrufen el Función en el Programa oder en Deklaration?[/quote:b7f9a07702] Erst beim Aufruf el Función en el Programa. Von por lo tanto hay no hay diferencia zwischen DEF y EXTERNAL.
Saludo 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 | 09.10.2006 ▲ |
|
|
|
|
| [quote:b7ae512a2a=RGH] CALL: Der Aufruf folgt en direkte Adresse., Dazu muß also en el XProfan-Programa el DLL geladen y el FunktionsAdresse ermittelt voluntad. Dieser Weg es umständlich (= langsam) y benötigt mehrere Zeilen en el XProfan-Programa. Macht eigentlich sólo Sinn, si uno, etwa en COM-Interfaces, sólo el Adressen disponible ha.[/quote:b7ae512a2a] Beim Aufruf con Funktionsnamen muß intern auch sólo el Funktionsadresse ermittelt voluntad, así el lo con Call IMHO no länger dauern kann, pero genauso rápidamente ser debería y de el 2ten Funktionsaufruf una Geschwindigkeitszuwachs bedeutet.
Como lo en el Tat umständlicher es, lohnt el Verwendung aber meist no |
|
|
| |
|
|
|
RGH | [quote:8841b3a260=TS-Soft]Beim Aufruf con Funktionsnamen muß intern auch sólo el Funktionsadresse ermittelt voluntad, así el lo con Call IMHO no länger dauern kann, pero genauso rápidamente ser debería y de el 2ten Funktionsaufruf una Geschwindigkeitszuwachs bedeutet.[/quote:8841b3a260] Como XProfan auch compiliert desafortunadamente siempre no tan rápidamente como TurboDelphi es ;) , es ya una kleiner Vorteil, si Delphi el DLL lädt y el Funktionsadresse ermittelt y no XProfan. En mehrfachem Aufruf derselben Función puede natürlich kompensiert y ser entonces una pequeña Tempo-Vorteil bedeuten.
Saludo 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 | 09.10.2006 ▲ |
|
|
|
|
| Vorneweg: Erst veces vielen Dank.
Yo habs con TNT grad veces incluso ausprobiert y el API MessageBeep de el User32 en el Función MessageBoxA umgeleitet. En DEF y Externo se entonces wirklick MessageBoxA en lugar de MessageBeep ausgeführt. El sicherere Método wäre entonces wirklich el encima Call y GetProcAddress (wobei GetProcAddress en Programmstart aufgerufen voluntad müßte).
Was mich gefreut ha,: El Profanfunktion Beep erzeugte más una Beep, en lugar de uno Messagebox - Yo denke veces, el es pero no en allen Características así - oder?? |
|
|
| |
|
|
|
| Juhu entonces mach ego con XPSE sí correcto el Hice Headerfiles genutzte Apis en Calls umwandle... |
|
|
| |
|
|
|
| Sí, deshalb mi Cuestión hier. |
|
|
| |
|
|
| |
|
- Página 2 - |
|
|
| Und si ego correcto verstanden habe entonces el XPSE-Variante incluso todavía sicherer como el Externo oder Def-Variante como el Funktionsadresse sí igual beim Programmstart - y no sólo en erster Verwendung bezogen se. |
|
|
| |
|
|
|
| ¡Hola IF...
Das sehe Yo auch así. Externo y DEF puede sí während des Laufens des Programmes umgeleitet voluntad => - kein ändern de DLL en el Festplatte - no MASM Kenntnisse - no Kenntnisse de Disassembling
son dafür nötig. Wenn el Sprungadresse ya beim Start des Programmes feststeht, reicht una Cambio el Exporttabellen el DLL en el Speicher no aus; Yo muß direkt el Sprünge en el Ver código fuente el DLL umleiten - y el es no así simplemente. Ob una continuación überhaupt a el übergebenen Parámetro kommt, es auch fraglich.
Usted puede sí incluso veces con TNT testen, como simplemente es, con DEF oder Externo aufgerufene Características umzuleiten. Mein kleiner Test ha 10 Sekunden gedauert.
Saludo
Andreas |
|
|
| |
|
|
|
RGH | [quote:0917fcffa2=Andreas Hötker]Was mich gefreut ha,: El Profanfunktion Beep erzeugte más una Beep, en lugar de uno Messagebox - Yo denke veces, el es pero no en allen Características así - oder??[/quote:0917fcffa2] Nein, no todos Profano-Características erzeugen una Beep! ;)
Im Ernst: Es en allen Características (außer SQL) así: El gesamte Windows-API es natürlich statisch gelinkt. Lediglich el ODBC-DLL son de besagten Gründen dynamisch gelinkt.
Statisch linken va natürlich sólo en DLL, el definitiv disponible son y no en DLL, el fakultativ a Anwendung kommen.
Saludo 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 | 09.10.2006 ▲ |
|
|
|
|
| [quote:627b335246=RGH][quote:627b335246=Andreas Hötker]Was mich gefreut ha,: El Profanfunktion Beep erzeugte más una Beep, en lugar de uno Messagebox - Yo denke veces, el es pero no en allen Características así - oder??[/quote:627b335246] Nein, no todos Profano-Características erzeugen una Beep! ;) [/quote:627b335246]
[quote:627b335246=RGH]Im Ernst: Es en allen Características (außer SQL) así: El gesamte Windows-API es natürlich statisch gelinkt. Lediglich el ODBC-DLL son de besagten Gründen dynamisch gelinkt. [/quote:627b335246] Das hört se muy bien a. |
|
|
| |
|
|