cómo descargar la dll - página 11

 
AlexEro >> :

Voy a suponer que no se trata necesariamente del probador de MT. Si el probador MT tiene de alguna manera un bucle LoadLibrary al principio ... FreeLibrary al final, y este bucle se ejecuta muchas veces, entonces Windows se limitará a bloquear la DLL en la memoria hasta mejor momento y no pensará en hacer nada para liberarla, sino sólo en imitarla. Esto se hace en Windows para almacenar en caché las bibliotecas de uso frecuente.


Puedes suponer lo que quieras, pero los resultados de un simple experimento demuestran que la dll está descargada del probador. Por qué todas estas ficciones, no está claro. Si no cierras el probador, entonces sí, la dll se colgará, pero cuando cierras el probador, se libera. Al menos en mi caso es así.

 
HideYourRichess >> :

Se puede suponer cualquier cosa, pero los resultados de un simple experimento muestran que la dll se descarga del probador. No entiendo por qué todas estas invenciones. Si no cierras el probador, entonces sí, la dll se colgará, pero cuando cierras el probador, se libera. Al menos para mí es así.


Oh, tuve un pensamiento aterrador - tal vez HideYourRichess es el empleado de MetaQuotes, que escribió ese bloque de carga de DLL en MT4? Entonces no hay más preguntas. Si a él le funciona, debe funcionar para los demás.

 
Una teoría de la conspiración de los desarrolladores de MT contra los pobres programadores está en orden.
 

Y lo he comprobado yo mismo: en este caso concreto, el probador tiene una simple DLL de jartmailru. Lo sujeta muy fuerte, mi renacuajo, y no lo deja entrar, diablillo. Lo cual es, sin embargo, normal y comprensible.

El Explorador de Procesos (con el plugin), por supuesto, lo descarga de todas formas - por hard unload.

Unlocker 1.8.7 no funciona en absoluto (?).

Por cierto, si la librería utiliza COM+ 2.0, y además es multihilo (es decir, compleja, como he dicho antes), entonces Microsoft indica un retardo de 10 MINUTOS para su / su descarga real, aunque estemos hablando de otra función de liberación:


CoFreeUnusedLibraries no libera inmediatamente las DLL que no tienen ningún objeto activo. Hay un retraso de diez minutos para los apartamentos multihilo (MTA) y los apartamentos neutros (NA). Para los apartamentos de un solo hilo (STA), no hay retraso. El retraso de diez minutos para CoFreeUnusedLibraries es para evitar condiciones de carrera multihilo causadas por la descarga de un componente DLL.

http://support.microsoft.com/kb/301357

 
HideYourRichess >> :

Creo de buena gana que algo no funciona ahí, pero no he ejecutado su sospechosa dll. Me da pereza compilarlo de su VC8.0 a VC6.0. También me da pereza comprobar las versiones de los crt que usas para ver si son compatibles. Puedes ver en el faro habitual que tienes un dll que enlaza con msvcr80, pero el ejemplo utiliza msvcrt. Una cosa pequeña, pero no agradable. Etc.

Sólo que este hecho es irrelevante, Sr. Slippery.

Con el script - todo se descarga.

Oops... se ha vuelto a avergonzar :-).

Pero está bien.

Ahora es relativo:

HideYourRichess >> :

Se puede suponer cualquier cosa, pero los resultados de un simple experimento muestran que la dll del probador está descargada. Por qué todas estas ficciones, no lo entiendo. Si no cierras el probador, la dll estará colgada, pero después de cerrar el probador se libera. Al menos yo lo he hecho.

Ahí lo tienes.

El hombre ha llegado a las pruebas.

Bienvenido al mundo real.

.

Comprobado el cierre del panel del probador.

Así que, ¡cuántas cosas inteligentes están programadas en MetaTrader!

Cierto, sin tener en cuenta el ciclo de desarrollo de estas mismas Dlls - pero eso son las pequeñas cosas.

Pero es más fácil cerrar todo el MetaTrader en funcionamiento :-).

.

Lo más importante: no hay que plantear el cierre del panel del probador como un hecho y un argumento obvio,

aunque su talento como investigador en casos en los que necesita "derribar" a su oponente,

que sin duda tiene. ¿Cuántos subordinados diría que tiene en este momento?

.

La frase en el original debería sonar así:

El probador mantendrá la Dll hasta que el metatrader se cierre.

a menos que haga un movimiento no obvio y cierre el panel de pruebas :-).

.

Conclusión: si no cierras el panel de pruebas con tu Dll, ¡tiene fallos como todos los demás! :-P

 

El Explorador de Procesos (con el plugin) por supuesto sigue descargándolo incluso con el probador - por descarga dura.

Reiniciando el probador después de descargar la DLL a través de PrExpl - no hay problema. Es decir, personalmente, prefiero clasificar este inconveniente (llamémoslo así) como un fallo de los probadores, más que como una característica. Las personas serias crearán su DLL en una ventana diferente, ¿por qué iban a saltar por diferentes ventanas, cerrarlas, abrirlas?

 
AlexEro >> :

Y lo he comprobado yo mismo: en este caso concreto, una simple DLL de jartmailru la tiene el probador. El probador lo sujeta muy bien y no lo deja entrar, fiend. Pero es normal y comprensible.


¿De quién es la culpa? Creo que es del programador. Porque otra dll, de otro programador, no lo hace.

 
HideYourRichess >> :

>> ¿De quién es la culpa? Creo que es de un programador corrupto.

¿Qué quieres decir, tío? Lo tiene MT - MQ's Tester, que no lo descarga de FreeLibrary. ¿Por qué te cagas en tu empresa? ¿Tú mismo escribiste este bicho y ahora nos preguntas en el foro?

 

(con voz de niño, como en las películas de pioneros de Stalin de los años 1940-1950)

Chicos, ¡ayudemos a MetaQuotes! ¡Nos será más fácil escribir programas MQL4! ¡Digamos al programador principal de MetaQuotes, llamado HideYourRichess, cómo se instalan, cargan, descargan y ejecutan las DLL! ¿Vamos? ¡А?! Lo someto a votación. Los que estén a favor, que levanten la mano y el servicio de mensajería de Windows.

 

Idiota.