回答編集履歴

3

WriteConsoleOutputW

2020/12/10 17:16

投稿

yumetodo
yumetodo

スコア5852

test CHANGED
@@ -21,3 +21,11 @@
21
21
  適当にこの関数を使ってるまともそうなサンプルを見つけたので参照してください。
22
22
 
23
23
  [https://gist.github.com/yoggy/809224](https://gist.github.com/yoggy/809224)
24
+
25
+
26
+
27
+ ちなみにWindows 10 の `WriteConsoleOutputW`は幅が2セルの文字を出力しようとすると表示が壊れるバグがあります。半角スペースを詰めるワークアラウンドが知られています。
28
+
29
+ [https://github.com/nsf/termbox-go/pull/213](https://github.com/nsf/termbox-go/pull/213)
30
+
31
+ [https://twitter.com/mattn_jp/status/1162706834265821184?s=20](https://twitter.com/mattn_jp/status/1162706834265821184?s=20)

2

m

2020/12/10 17:16

投稿

yumetodo
yumetodo

スコア5852

test CHANGED
@@ -14,6 +14,10 @@
14
14
 
15
15
 
16
16
 
17
+ 同様にして第4引数もDWORD型変数へのポインタを要求しています。
18
+
19
+
20
+
17
21
  適当にこの関数を使ってるまともそうなサンプルを見つけたので参照してください。
18
22
 
19
23
  [https://gist.github.com/yoggy/809224](https://gist.github.com/yoggy/809224)

1

m

2020/12/10 16:58

投稿

yumetodo
yumetodo

スコア5852

test CHANGED
@@ -1,4 +1,4 @@
1
- `ReadConsoleInput`の使い方が正しくないからです。第引数に着目すると
1
+ `ReadConsoleInput`の使い方が正しくないからです。第2引数に着目すると
2
2
 
3
3
 
4
4
 
@@ -10,7 +10,7 @@
10
10
 
11
11
  ```
12
12
 
13
- となっていますが、必要なのは`INPUT_RECORD Buffer`型の領域へのポインタです。
13
+ となっていますが、必要なのは`INPUT_RECORD Buffer`型の領域へのポインタです。また第3引数は第2引数の領域の要素数です。適当に`100`を渡せばいいってもんじゃありません。というかCにおいて、配列の先頭要素へのポインタと、配列の要素数を関数の引数に渡すパターンは頻出しますから覚えてください。
14
14
 
15
15
 
16
16