2012-04-13 1 views
1

インポートシステム機能(ウィンドウ - ntsystem.dll)インラインアセンブリで使用するため、私はこのコードを実行する必要が

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

をしかし、私はNtQueryInformationThreadが 「未定義の識別子があるエラーメッセージが表示されます: 『NtQueryInformationThread』 "

宣言してもらえますか? ありがとうございます。

+0

は[ 'JclWin32.pasに見てみましょう'](http://jcl.svn.sourceforge.net/viewvc/jcl/trunk/jcl/source/windows/JclWin32.pas?revision=3776&view=markup)。そこに答えを見つけるでしょう。 – TLama

答えて

7

あなたが欠けているのは、プログラムがntdll.dllから関数をインポートする必要があることです。これにはasmは必要ありません。プログラムを維持するのが難しくなるので、実際には使用しないでください。

あなただけの他のWindows API関数のように機能をインポートすることができます。

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

あなたはあまりにも型宣言のカップルが必要になります。

type 
    NTSTATUS = LONG; 
    THREADINFOCLASS = DWORD; 
+0

ご協力いただきありがとうございます –

関連する問題