看板 C_and_CPP 關於我們 聯絡資訊
大家好 是這樣的.... 我目前自己寫的程式 想到別台電腦上跑 因為不是什麼大程式 只不過讀寫檔案而已 自己的電腦跑是OK的不會出錯 丟到另一台舊電腦 也是可以跑沒有錯誤 問題就在我丟到另一台電腦 他卻會出現assertion fail ... fwrite.c Expression: (stream!=NULL) _VALIDATE_RETURN( (stream != NULL), EINVAL, -1); 是出現在下面這段 FILE * pFile; pFile=fopen("C:\\test.bin","wb"); fwrite(...,...,...,pFile); 我發現pFile得到fopen的return值後 會是null.... 沒道理阿= = 我找不出錯誤 只能想說三台電腦平台上的差異 就是壞掉的這台是vista 32bit 可是為什麼會一直return null... 請問有人知道是什麼原因嘛? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.207.187 ※ 編輯: QQ29 來自: 140.113.207.187 (07/10 18:01)
zlw:下中斷點在fwrite,檢查有無產生test.bin,監看式檢查$err,hr 07/10 18:07
zlw:虛擬變數(虛擬暫存器),要自己手動加 07/10 18:07
QQ29:$err,hr0x00000005 存取被拒.....奇怪= = 07/10 18:15
QQ29:是不是vista有什麼怪設定! 我把它存到e: 好像過了那行了 07/10 18:20
QQ29:暫存器寫S_OK.. 07/10 18:20
weiyucsie:我知道ntfs作業系統可以設定寫入權限啦 07/10 18:44
zlw:嗯,可能是OS權限設定吧 07/10 18:46
weiyucsie:阿 ntfs是檔案系統 我一定是昏了頭XD 07/10 20:23
ledia:開檔先檢查回傳的 fp 是好習慣, 能的話再 GetLastError() 07/10 23:40
hikaru06:推樓上的, 等到系統一大起來 要找出哪裡assert,就.. 07/11 12:24
hikaru06:return null 就是找不到該檔案,會是環境變數的問題嗎? 07/11 12:25
legnaleurc:Vista 印象中會保護系統碟... 07/11 13:05
Bencrie:return null只能說開檔失敗,不能說找不到檔案 XD 07/11 20:04
QQ29:爬文 也沒人遇到這問題耶!難道大家都沒有再vista寫程式嘛@@ 07/12 00:15
Ebergies:看 GetLastError 不就好了 @@? 07/13 10:59