169 похожих чатов

Народ, плиз хелп, всю голову сломал себе уже... разве может

быть так, что
GetProcAddress( GetModuleHandle( "kernel32.dll" ), "SetThreadDescription" )
вернёт ненулевое значение при отсутствии SetThreadDescription() в системе? заявлена поддержка этой функции в Windows Server 2016+, проверяю на 2012 - типа какой-то адрес возвращается??

12 ответов

5 просмотров

хелп от вин32 апи нынче любит лапшу на уши вешать. у них даже функции из 3.11 поддерживаются только в десятке

Iluha-Companets Автор вопроса
Vga
хелп от вин32 апи нынче любит лапшу на уши вешать....

дык, проблема в том, что я получаю какой-то адрес, пытаюсь вызвать функцию и получаю AV

Vga
хелп от вин32 апи нынче любит лапшу на уши вешать....

Ну вот у меня этой функции нету в кернел32.длл. >tcc - -run #include <stdio.h> #include <windows.h> int main(){ printf("%08x\n", GetProcAddress(GetModuleHandle("kernel32.dll"), "SetThreadDescr iption")); return 0;} ^Z 00000000 работает как полагается по документации

посмотри каким-нить вьювером, есть ли такая функция в кернел32.длл

Vga
Ну вот у меня этой функции нету в кернел32.длл. >t...

https://stackoverflow.com/questions/62243162/how-to-access-setthreaddescription-in-windows-2016-server-version-1607

Iluha Companets
нет

а какое конкретно значение gpA возвращает?

так можно в самой dll-ке посмотреть экспорт

Iluha-Companets Автор вопроса
Vga
а какое конкретно значение gpA возвращает?

а вот хороший вопрос!!! сейчас сделал из дельфи вызвал - 0 ! а из DLL как буд-то даже если функция пытается загрузиться - сразу AV

Ты можешь в принципе не искать SetThreadDescription, а дергать напрямую. NtSetInformationThread даже в nt4 есть. А вот саму поддержку ThreadNameInformation можешь по результату проверять. STATUS_SUCCES если все норм, в противном случае будет STATUS_INVALID_INFO_CLASS pascal type NTSTATUS = Cardinal; ULONG = Cardinal; _UNICODE_STRING = record Length: WORD; MaximumLength: WORD; Buffer: PWideChar; end; UNICODE_STRING = _UNICODE_STRING; PTHREAD_NAME_INFORMATION = ^THREAD_NAME_INFORMATION; _THREAD_NAME_INFORMATION = record ThreadName: UNICODE_STRING; end; THREAD_NAME_INFORMATION = _THREAD_NAME_INFORMATION; function NtSetInformationThread(ThreadHandle: THandle; ThreadInformationClass: Integer; ThreadInformation: Pointer; ThreadInformationLength: ULONG): NTSTATUS; stdcall; external 'ntdll.dll'; function SetThreadDescription(hThread: THandle; lpThreadDescription: PWideChar): HRESULT; const ThreadNameInformation = 38; var NameInfo: THREAD_NAME_INFORMATION; begin NameInfo.ThreadName.Length := Length(lpThreadDescription) shl 1; NameInfo.ThreadName.MaximumLength := NameInfo.ThreadName.Length + 2; NameInfo.ThreadName.Buffer := lpThreadDescription; Result := NtSetInformationThread(hThread, ThreadNameInformation, @NameInfo, SizeOf(NameInfo)); end;

Похожие вопросы

Обсуждают сегодня

~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Ребят в СИ можно реализовать ООП?
Николай
29
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
14
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
<?php function prepareTel($data, $modx, $_multiTV) { if ($data['iteration'] == $data['row']['total']) { $data['tel'] = '<a class="link" href="tel: ' . $data['tel']...
Кирилл Гацевич
2
а еще на 1.4.35 похоже не работает SMTP отправка, данные подключения указаны, а отправляет все равно через mail(), в том числе регистрацию, там ничего не ломали?
alexx GTX
6
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
❓ Подскажите как сделать в группе телеги функцию (кнопку) пересылки сообщения где есть нарушение правил? Бот к каждому сообщению (по определенным ключам) добавляет снизу кнопк...
Alexander
4
Карта сайта