CreateFile 總是呼叫錯誤的解決辦法

2021-06-22 12:33:19 字數 1049 閱讀 9213

用vc6.0寫乙個mfc程式呼叫了createfile函式,結果總是出錯,

hfile = createfile(strfilename, generic_read, file_share_read | file_share_write, null, open_existing, file_flag_sequential_scan, null);

if (hfile==invalid_handle_value)                                        //如果createfile呼叫失敗 

查了很多相關資料,解決辦法就在於 strfilename ,這個是檔名 ,這個檔名必須是帶有該檔案路徑,否則就錯誤,因此需要在傳入該引數時寫入該檔案的全路徑

之所以我會發現我程式裡面會有這個錯誤,是因為我程式裡面用了乙個cfiledialog dlg(true, null, null, 0, "文字文件(*.txt)|*.txt");

if (dlg.domodal() == idok)

獲取路徑的參考

tchar exefullpath[max_path]; // max_path在windef.h中定義了,等於260

memset(exefullpath,0,max_path);

::getmodulefilename(null,exefullpath,max_path);

tchar drive[_max_drive];

tchar dir[_max_dir];

char fname[_max_fname];

char ext[_max_ext];

//函式可以從路徑中分解出 碟符、目錄、檔名、檔案字尾等。是乙個非常有用的函式。

::_tsplitpath( exefullpath, drive, dir,fname , ext);

cstring strdllpath(drive);

strdllpath += dir;

// cstring strdllpath;

strdllpath += "help.dll";  //這裡要寫路徑

call 處理呼叫錯誤

在程式開發中,如果在使用物件呼叫物件內部方法時候,呼叫的這個方法不存在那麼程式就會出錯,然後程式退出不能繼續執行。那麼可不可以在程式呼叫物件內部不存在的方法時,提示我們呼叫的方法及使用的引數不存在,但程式還可以繼續執行,這個時候我們就要使用在呼叫不存在的方法時自動呼叫的方法 call 片斷 上例出現...

解決跨執行緒呼叫錯誤提示

出面這種錯誤主要是因為我們在乙個不是建立此控制項的執行緒上,對此控制項進行操作所引起的,現在有解決方法兩種,大家自已看,第一 private delegate void change string text 定義委託,使執行緒方便呼叫此委託方 private void changetext priv...

18 call處理呼叫錯誤

在程式開發中,如果在使用物件呼叫物件內部方法時候,呼叫的這個方法不存在那麼程式就會出錯,然後程式退出不能繼續執行。那麼可不可以在程式呼叫物件內部 不存在的方法時,提示我們呼叫的方法及使用的引數不存在,但程式還可以繼續執行,這個時候我們就要使用在呼叫不存在的方法時自動呼叫的方 法 call demo ...