關於WriteFile函式的lpNumberOfBytesWritten在Win8開始的不同
今天我寫一個程式,把lpNumberOfBytesWritten的指標給錯了,隱式給成了NULL,但我是在Win8編譯測試的,結果WriteFile通過了,我沒察覺到這個錯誤。而我轉到Win7上執行,直接蹦了,百思不解,無奈之下開啟OD調,結果發現死在WriteFile這裡,仔細一跟,我艹。。。
原來是這樣的,lpNumberOfBytesWritten引數大家都不能設定為NULL或一個無效的指標,除非lpOverlapped引數不是NULL,也就是說WriteFile的最後2個引數必須有一個不為NULL,MSDN也是這樣寫的。可Win8開始不是這樣了,你可以把WriteFile的最後2個引數都設定為NULL。。。比如:
WriteFile(hFile,lpBuffer,dwWriteSize,NULL,NULL);
這樣在Win7下執行會掛的,而Win8下不會,因為Win8會檢查lpNumberOfBytesWritten參賽是否為空指標,如果是空指標就跳過不寫了。彙編如下
Win7:
Win8:
相關文章
- 關於在oracle 的group by中使用自定義函式Oracle函式
- 關於count函式的理解函式
- 關於lag函式的用法函式
- 關於scanf函式的問題函式
- 關於函式索引的問題?函式索引
- Oracle中關於函式的使用Oracle函式
- 關於qt中的tr()函式QT函式
- 關於Oracle取整的函式Oracle函式
- 摘-- 關於在函式或過程中 ref cursor 的用法函式
- 關於建構函式與解構函式的分享函式
- 關於std::list的sort函式在VC6下的修正 (轉)函式
- 關於cuda中的函式問題函式
- 關於oracle內建函式的使用Oracle函式
- 關於字串的功能函式小結字串函式
- 偶函式在零點的泰勒展開式相關知識點函式
- 關於在PostgreSQL中使用extract函式以及epochSQL函式
- WriteFile 奇怪的現象
- 如何開始函式程式設計的學習?函式程式設計
- 關於 js 中的回撥函式 callbackJS函式
- 關於執行緒的幾個函式執行緒函式
- 關於緩動動畫函式的封裝動畫函式封裝
- 關於scala中的主建構函式函式
- C語言中關於時間的函式函式
- 關於建構函式的一點理解函式
- 關於字串的幾個有用函式 (轉)字串函式
- 關於C++當中的“模板函式”C++函式
- Python利用partial偏函式生成不同的聚合函式Python函式
- 關於函式指標函式指標
- 關於ES6的箭頭函式和展開運算子函式
- 關於類的建構函式不能為虛擬函式的幾點理由!函式
- win8電腦開始螢幕的關機按鈕怎麼隱藏
- 關於PostgreSQL的系統資訊函式的OIDSQL函式
- 關於Swift中的泛函式find的問題Swift函式
- 【開發篇sql】 分析函式(一) 評級相關的函式SQL函式
- 關於javascript中變數及函式的提升JavaScript變數函式
- 關於python建構函式的過載Python函式
- 關於 Math.random 的一些函式random函式
- 關於linux下system()函式的總結Linux函式