就是在用控制臺api進行輸入輸出的時候在要求傳入 輸入輸出句柄的地方 固定是那幾個植
Option Explicit
Public Declare Function AllocConsole Lib "kernel32" () As Long
Public Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA" (ByVal hConsoleOutput As Long, lpBuffer As Any, ByVal nNumberOfCharsToWrite As Long, lpNumberOfCharsWritten As Long, lpReserved As Any) As Long
Public Declare Function ReadConsole Lib "kernel32" Alias "ReadConsoleA" (ByVal hConsoleInput As Long, lpBuffer As Any, ByVal nNumberOfCharsToRead As Long, lpNumberOfCharsRead As Long, lpReserved As Any) As Long
Sub main()
Dim a As String * 3
AllocConsole
WriteConsole 11, ByVal "hello_world", 12, 0, 0 '請問這里為啥固定是7或者是11
ReadConsole 3, ByVal a, 2, 0, 0 '這里為什么固定又是3
End Sub
而且和GetStdHandle的結果是一樣的 難道那幾個植真的有什么含義么
uj5u.com熱心網友回復:
參考:http://binaryworld.net/Main/CodeDetail.aspx?CodeId=2200#copyuj5u.com熱心網友回復:
查閱一下這個uj5u.com熱心網友回復:
這就是不用常量定義的壞處。一切常數看起來都是魔法數,云山霧罩!
uj5u.com熱心網友回復:
看不懂,你把a都設成定長串了不是3是什么uj5u.com熱心網友回復:
所有魔法數都在include\*.h檔案中有定義。uj5u.com熱心網友回復:
console螢屏處理例子程式。終端視窗螢屏處理相關API使用例子。來自MSVC20\SAMPLES\win32\console\http://download.csdn.net/detail/zhao4zhong1/3461309
uj5u.com熱心網友回復:
沒搞懂……
uj5u.com熱心網友回復:
魔法數的問題是編碼規范的問題。
到哪里查資料可不屬于編碼規范。
uj5u.com熱心網友回復:
問題在于:看 API的引數,應該是傳入“句柄”。但實際呼叫時,傳入的并不象是句柄呀。

uj5u.com熱心網友回復:
因為實際會用到getstdhandle函式,而getStdHandle的結果總是回傳那幾個值
uj5u.com熱心網友回復:
下載一個好點的API瀏覽器吧, 包含了引數說明的.推薦一個: FoxAPI
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/134071.html
標籤:API
下一篇:自動賦值代碼從100開始賦
