Форум программистов, компьютерный форум CyberForum.ru

Список параметров функции из DLL - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Применение is_same для списка типов http://www.cyberforum.ru/cpp/thread1652384.html
Итак, std::is_same может сравнить только два типа. Написал велосипед, который сравнивает первый тип со всеми остальными. Собственно, вот код: #include <type_traits> // ========================================================================================================= // ================================================is_same_list============================================= //...
C++ Виснет графика в SDL Здравствуйте, пишу программу, которая меняет две картинки под музыку, после нескольких секунд музыка продолжает играть, но картинки не меняются и программа получает статус "не отвечает". Почему? Буду благодарен за помощь. #include <SDL.h> #include <SDL_mixer.h> #include <stdio.h> #include <string> #include <iostream> using namespace std; int main( int argc, char* args ){ http://www.cyberforum.ru/cpp/thread1652358.html
[mingw] не видит <codecvt> C++
всем привет. есть библиотека, которая изначально разрабатывалась в msvc2013. к библиотеке есть требование - кросс-платформа, и отсутствие внешних зависимостей. то есть, нельзя подтягивать буст, и подобные тяжеловесные вещи. казалось бы - никаких левых зависимостей,
C++ Обертка над boost::lexical_cast для работы с unsigned типами
Пару дней назад выяснилось, что boost::lexical_cast не удовлетворяет нескольким требованиям в моей программе. boost::lexical_cast отказывается обрабатывать и выбрасывает исключение, если имеются пробелы в начале или в конце входной строки. Также для unsigned типов, отрицательные значения обрабатываются нормально, т.е., например, boost::lexical_cast<unsigned int>("-1") даст вполне валидное...
C++ Hex to Ascii http://www.cyberforum.ru/cpp/thread1650678.html
Всем привет! Работаю с АЦП, и ему надо отправить ascii код (55H 55H 00H 00H AAH). (в виде char будет (UU ª), просто так отправить не удалось) Попробовал отправить hex (55 55 00 00 AA), не принимает. Кто-нибудь может мне помочь вывести строчку "UU ª" хотя бы на командную строку?
C++ QtCipherSqlitePlugin sqlite3_rekey не шифрует Пытаюсь сменить пароль на БД. QSqlDriver *driver=myDatabase.driver(); QVariant handle=driver->handle(); Q_ASSERT_X(handle.isValid(), Q_FUNC_INFO, "Invalid handle of QSqlDriver"); if(handle.isValid() && qstrcmp(handle.typeName(), "sqlite3*")!=0) return false; sqlite3* db=*static_cast<sqlite3* const*>(handle.data()); if(db==NULL) подробнее

Показать сообщение отдельно
nikolay1982
92 / 92 / 38
Регистрация: 22.01.2014
Сообщений: 310
02.04.2016, 15:56     Список параметров функции из DLL
Цитата Сообщение от Izual Посмотреть сообщение
допустим 4 аргумента, все они int_32, т.е. 4х4байт=32, а return там bool - 1 байт, т.е. в сумме 33 байта
Это значит, в стэк передается четыре аргумента int32_t , а результат в регистре EAX (тип вызова stdcall,cdecl).
Для незадокументированных dll можно диассемблировать и посмотреть аргумент return. По этому значению можно угадать сколько у функции аргументов в DWORD. Но это грубое упрощение, в расчете на то, что в функции стандартный предсказуемый эпилог. Иначе надо будет учитывать другие инструкции.
Что касается стандартных dll.
Можно просмотреть загловочные файлы из-под установленного Masm-а.
Например: Masm/include/user32.inc.
Но это дает данные о том, сколько параметров у функции, и есть ли результат.
Для просмотра, какие параметры у функции придется смотреть справку WinAPI.
У меня она старая 17 Мб занимает(English), а 2 Гб справки устанавливать на компьютер не интересно.
Можно просматривать заголовочные файлы.
Можно даже хитрее сделать: Написать скрипт, который бы получал по DLL список экспортируемых функции(dumpbin,pexports в помощь), и пытался найти их определения в папке include С/С++ компилятора.
Что-то вроде:
Bash
1
2
3
4
5
6
pexports user32.dll >user32.def
echo "Function List:"> user32.lst
for n in `cat user32.def`;
do
    fgrep -r $n c:/Pograms/MinGW/Include >> user32.lst
done
 
Текущее время: 03:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru