1

このコードを実行する必要があります:

asm
 push eax
 mov eax, esp
 push 0
 push 4
 ...
 call NtQueryInformationThread
 ...
end;

しかし、NtQueryInformationThreadが「宣言されていない識別子:'NtQueryInformationThread'」であるというエラーメッセージが表示されます。

宣言するのを手伝ってくれませんか。前もって感謝します。

4

1 に答える 1

7

不足しているのは、プログラムにから関数をインポートさせる必要があるということですntdll.dll。さらに、これは必要ありませんasm。プログラムの保守が困難になるため、使用を避ける必要があります。

この関数は、他のWindowsAPI関数と同じようにインポートできます。

function NtQueryInformationThread(
    ThreadHandle: THandle;
    ThreadInformationClass: THREADINFOCLASS;
    ThreadInformation: Pointer;
    ThreadInformationLength: ULONG;
    ReturnLength: PULONG
): NTSTATUS; stdcall; external 'ntdll.dll';

いくつかの型宣言も必要になります。

type
  NTSTATUS = LONG;
  THREADINFOCLASS = DWORD;
于 2012-04-13T09:32:19.620 に答える