2010-07-12 10 views
6

Ok, entonces puedo usar dumpbin.exe/exports library.dll para encontrar todos los métodos en el dll.Encontrar argumentos que vayan con los métodos en C++ dll's

... pero ¿cómo puedo saber qué argumentos pasar a ellos? Sin un archivo de cabecera, por supuesto.

+0

pregunta similar: [Función de llamada en C++ dll sin encabezado] (http://stackoverflow.com/questions/554551/call-function-in-c-dll-without-header) – Amro

Respuesta

8

Para las exportaciones habituales de estilo C (por ejemplo, DLL de Windows API): no se puede. Esta información no se almacena en el archivo DLL y se pierde inevitablemente después de la compilación (a menos que tenga los encabezados o símbolos de depuración).

Las exportaciones de C++, por otro lado, almacenan su firma como parte del nombre de la función destruida y puede verlas usando Dependency Walker o herramientas similares, o exigirlas manualmente usando the UNDNAME tool o DUMPBIN's /SYMBOLS option.

+0

Ahh, dulce. Gracias. Pero ... ¿cómo descifrar los nombres? Por ejemplo, estos nombres de métodos: ? GetCpuSpeed ​​@@ YAHXZ ? GetCpuSpeed ​​@ CDLL1 @@ QAEHXZ ¿Alguna idea? – Presidenten

+0

Al menos Dependency Walker puede exigir los nombres a través de una entrada de menú. Para obtener información detallada, consulte la sección "Enlaces externos" de http://en.wikipedia.org/wiki/Name_mangling – Philipp

+0

Más enlaces: http://msdn.microsoft.com/en-us/library/5x49w699.aspx http: //msdn.microsoft.com/en-us/library/b06ww5dd.aspx – Philipp

Cuestiones relacionadas