我不明白为什么这段代码不起作用:
设置控制台光标位置
require 'Win32API'
STD_OUTPUT_HANDLE = -11
GetStdHandle = Win32API.new('kernel32', 'GetStdHandle', 'L', 'L')
HConsoleOutput = GetStdHandle.call(STD_OUTPUT_HANDLE)
SetConsoleCursorPosition = Win32API.new('kernel32', 'SetConsoleCursorPosition', ['L', 'P'], 'L')
x = 5
y = 2
buffer = [x, y].pack('ss')
p SetConsoleCursorPosition.call(HConsoleOutput, buffer) #=> 0 - FAIL
我做得不好?也许存在将buffer
转换为解决它的指针?但是buffer
是一个字符串,这意味着它已经是一个指针。
这项工作对我来说,使用另一个功能:
隐藏控制台光标
require 'Win32API'
STD_OUTPUT_HANDLE = -11
GetStdHandle = Win32API.new('kernel32', 'GetStdHandle', 'L', 'L')
HConsoleOutput = GetStdHandle.call(STD_OUTPUT_HANDLE)
SetConsoleCursorInfo = Win32API.new('kernel32', 'SetConsoleCursorInfo', ['L', 'P'], 'L')
cursor_size = 20
cursor_visible = 0
buffer = [cursor_size, cursor_visible].pack('LC')
# Hide console cursor.
p SetConsoleCursorInfo.call(HConsoleOutput, buffer) #=> 1 - SUCCESSFUL
感谢您的阅读!