Кибор » Кибор - Интегрированная среда разработки ботов » Отчет о ошибках » external

Страниц (1): [1]
 

1. Zireael - 29 Марта, 2019 - 19:31:51 - перейти к сообщению
CODE:
external(INT, "GetSystemTime", "GetSystemTime", "Kernel32.dll");
external(INT, "SystemTimeToVariantTime", "SystemTimeToVariantTime", "OleAut32.dll");
external(INT, "VariantTimeToSystemTime", "VariantTimeToSystemTime", "OleAut32.dll");

char SYSTEMTIME[16];
double time;

GetSystemTime(address(#SYSTEMTIME[0])); // получить системное время
SystemTimeToVariantTime(address(#SYSTEMTIME[0]), address(#time)); // перевести в double
messagebox(time); // время в виде 8 байт

// дальше вылет
VariantTimeToSystemTime(time, address(#SYSTEMTIME[0])); // перевести обратно из double в системное время
2. Zireael - 29 Марта, 2021 - 19:57:46 - перейти к сообщению
Проблема решилась таким способом:
CODE:
VariantTimeToSystemTime(addressi(address(#time)), addressi(address(#time)+4), address(#SYSTEMTIME[0]));

Теперь другая.
Так работает:
CODE:
external(INT, "abs", "abs", "msvcrt.dll");

int result = 10-40;
result = abs(result);
messagebox(result);

А так нет:
CODE:
external(INT, "abs", "abs", "msvcrt.dll");

int result = abs(10-40);
messagebox(result);

Т. е. в функцию передалось 10, а не результат операции 10-40.
3. Kibor - 30 Марта, 2021 - 04:09:37 - перейти к сообщению
Поправил.

Powered by ExBB FM 1.0 Final