Итак, я могу использовать dumpbin.exe/exports library.dll, чтобы найти все методы в dll.Поиск аргументов, которые идут с методами в C++ dll
... но как мне узнать, какие аргументы нужно переходить в них? Без заголовка, конечно.
Итак, я могу использовать dumpbin.exe/exports library.dll, чтобы найти все методы в dll.Поиск аргументов, которые идут с методами в C++ dll
... но как мне узнать, какие аргументы нужно переходить в них? Без заголовка, конечно.
Для обычного экспорта в стиле C (например, DLL Windows API): вы не можете. Эта информация не сохраняется в DLL и неизбежно теряется после компиляции (если у вас нет заголовков или символов отладки).
С другой стороны, экспорт C++ хранит свою подпись как часть имени функции управления, и вы можете просматривать их с помощью Dependency Walker или аналогичных инструментов или разворачивать их вручную, используя the UNDNAME tool или DUMPBIN's /SYMBOLS
option.
Ahh sweet. Благодарю. Но ... как я расшифрую имена? Например, эти имена методов: ? GetCpuSpeed @@ YAHXZ ? GetCpuSpeed @ CDLL1 @@ QAEHXZ Любые идеи? – Presidenten
По крайней мере, зависание Уокер может разбить имена через некоторую запись в меню. Подробную информацию см. В разделе «Внешние ссылки» http://en.wikipedia.org/wiki/Name_mangling – Philipp
Другие ссылки: http://msdn.microsoft.com/en-us/library/5x49w699.aspx http: //msdn.microsoft.com/en-us/library/b06ww5dd.aspx – Philipp
Аналогичный вопрос: [Функция вызова в dll C++ без заголовка] (http://stackoverflow.com/questions/554551/call-function-in-c-dll-without-header) – Amro