cómo descargar la dll - página 6

 
VBAG писал(а) >>

¿Se ha seleccionado correctamente el prototipo de función principal?

¿Cómo gestionar los hilos ATTACH/DETACH?

¿Dónde se puede leer al respecto y, preferiblemente, con ejemplos?

Jeffrey Richter "Ventanas para profesionales".

 
VBAG >> :

¡Saludos a todos!

El tema se puso interesante y decidí comprobar el tema discutido en un ejemplo simple que viene con el terminal (proyecto DLLSample).

Después de compilar en VS 6.0, la dll horneada funciona con el terminal correctamente, ¡pero no se descarga!


¿Cómo sabes que no se está descargando? Mi DLLSample funciona bien.

 
HideYourRichess писал(а) >>

¿Cómo sabes que no se está descargando? Mi DLLSample funciona bien.

Indirectamente, el cuerpo del archivo dll no se sobrescribe hasta que se cierra el terminal.

.

Tengo un par de arrays estáticos declarados a nivel global, tal vez eso afecte.

.

Quiero entender cómo afinar el proyecto correctamente y prescribir "cuidadosamente" el attach/detach, como digo.

 

Gracias, estaré pendiente.

 
VBAG >> :

¡Saludos a todos!

El tema se puso interesante y decidí comprobar el tema discutido en un ejemplo simple que viene con el terminal (proyecto DLLSample).

Después de compilar en VS 6.0, la dll horneada funciona con el terminal correctamente, ¡pero no se descarga!

Esta es la función principal:

Y ahora una pregunta a los entendidos, que realmente entienden cómo es y funciona la dll bajo Windows y saben cómo compilarla correctamente en un proyecto bajo VS 6.0(por ejemplo).

¿Es correcto el prototipo de la función principal?

¿Cómo gestionar los flujos ATTACH/DETACH?

¿Dónde puedo leer sobre ello, preferiblemente con ejemplos?

¿Qué atach? ¿Qué dtach? ¿De qué hablas? ¡La función DllMain en una dll normal no es necesaria en absoluto! El enlazador lo inserta en la dll en lugar de usted.

http://msdn.microsoft.com/en-us/library/2kzt1wy3(VS.80).aspx

/MD, /MT, /LD (Utilizar la biblioteca en tiempo de ejecución)


/LD

Crea una DLL.

Pasa la opción /DLL al enlazador. El enlazador busca, pero no requiere, una función DllMain. Si no escribe una función DllMain, el enlazador inserta una función DllMain que devuelve TRUE.

Enlaza el código de inicio de la DLL.


http://msdn.microsoft.com/en-us/library/ms682583(VS.85).aspx

Función DllMain Callback

Un punto de entrada opcional en una biblioteca de enlace dinámico (DLL)
 
VBAG >> :

Indirectamente, el cuerpo del archivo dll no se sobrescribe hasta que se cierra el terminal.

.

Sin embargo, tengo un par de arrays estáticos declarados a nivel global, tal vez eso afecte.


Así que en realidad no tienes una DLLSample, como afirmaste antes, ¿verdad?

VBAG >> :

Me gustaría entender cómo afinar el proyecto "cuidadosamente" para escribir attach/detach como lo puse.

 
HideYourRichess писал(а) >>

Así que en realidad no tienes DLLSample, como has afirmado antes, ¿verdad?

Bueno, en general, sí, si se utiliza explícitamente DllMain. Y en general, todos los ajustes del proyecto deben tomarse del muestreador. Megakvot recomienda prescribir DllMain explícitamente, aunque si escribes en Delphi puedes no prescribir DllMain allí y poner todo el attach/detach en inicialización y finalización.

Salvo que he añadido dos arrays estáticos a nivel global, todo el proyecto está tomado de DLLSample.

Llamo a la función primitiva en el EA que se ejecuta en el probador. Una vez finalizada la prueba, la DLL se mantiene en la memoria. Esta es la situación.

 
VBAG >> :

Salvo que he añadido dos arrays estáticos a nivel global, todo el proyecto está tomado de DLLSample.

Llamo a la función primitiva en el EA que se ejecuta en el probador. Una vez finalizada la prueba, la DLL se mantiene en la memoria. Esta es la situación.

Aha, así que el problema se produce en el probador. No es un script ni un indicador - es el Asesor Experto. ¿Cómo se comporta este EA en condiciones normales, no en el probador?


Por cierto, "dos arrays estáticos a nivel global" en teoría no deberían afectar a la dll de ninguna manera. Especialmente si no usas dll para acceder a ellos en absoluto.


Es divertido. Falta parte del texto de mi post al que respondías, aunque no lo he borrado. El foro tiene fallos.

 
HideYourRichess >> :

Aha, así que el problema surge en el probador. Y no es ni un script, ni un indicador - es un EA. Bueno, ¿cómo se comporta este EA en condiciones normales, no de prueba?

En realidad, yo también tuve todos estos problemas con la dll hace un año, cuando tenía EA-

comprobé la ejecución de mi probador con la del sistema.

Pero... alguien se las arregló para poner a todo el mundo por las manos torcidas y los errores en el programa.

Dios quiera que alguien sea tan jefe :-(.

P.D.: polinked dll con librerías de tiempo de ejecución VC 2005: después del indicador y el script

>> todo se descarga normalmente.

 
jartmailru >> :

En realidad, yo también tuve todos estos problemas con la dll hace un año, cuando tenía EA-

comprobé la ejecución de mi probador con la del sistema.

Pero... alguien se las arregló para poner a todo el mundo por las manos torcidas y los errores en el programa.

Dios quiera que alguien sea tan jefe :-(.

P.D.: Polinked dll con las bibliotecas de tiempo de ejecución de VC 2005: después del indicador y el script

todo se descarga bien.

Una vez más, no tengo problemas con la dll en ningún sitio. Si tienes un problema, es tu problema de programación, probablemente no sea culpa de MS o MT. Y el hecho de que necesites usar el "viejo" VC - debería estar claro.

Razón de la queja: