【问题标题】:Getting console input with win32 api in x86 assembly在 x86 程序集中使用 win32 api 获取控制台输入
【发布时间】:2017-07-25 02:29:40
【问题描述】:

在我的汇编程序中,我从kernel32 库中调用了AllocConsole,但是我不知道如何从分配的控制台获取输入。 winapi 包含的函数是否会从当前程序中分配的控制台获取输入?

CALL AllocConsole

ReadConsole 等所有函数都需要输入缓冲区,而我不知道如何为我分配的控制台获取输入缓冲区,更不用说该函数是否能满足我的需要。

总结一下,winapi中有没有可以从程序中分配的控制台获取输入的函数?

谢谢

【问题讨论】:

  • 使用 CreateFile() 打开 CONIN$
  • AllocConsole 为新控制台初始化标准输入、标准输出和标准错误句柄。标准输入句柄是控制台输入缓冲区的句柄,标准输出和标准错误句柄是控制台屏幕缓冲区的句柄。 要检索这些句柄,请使用 GetStdHandle 函数。

标签: winapi assembly x86 masm console-input


【解决方案1】:

ReadConsole等所有函数都需要输入缓冲区,我不知道如何获取输入缓冲区

您必须调用的函数在 C 语言和汇编语言中是相同的。所以你的问题不是特定于汇编语言的。

您可以使用GetStdHandle 函数获取标准输入和标准输出句柄。

要获取输入句柄,您必须将常量 STD_INPUT_HANDLE(在 32 位程序的情况下为-10 = 0xFFFFFFF6)作为参数传递给函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    相关资源
    最近更新 更多