一个偷偷修改工作目录的幕后黑手
????? 我想說的是 CFileDialog。
??????最近開發一個場景編輯器,其中有一個選擇磁盤文件的操作,選擇之后傳個文件路徑進某個模塊執行相關的功能。
??????然而卻發現,功能效果沒有達到預期。于是一步一步執行代碼進去調試,也沒發現任何異常。
??????接著在選擇磁盤文件之后,直接傳個測試路徑進去,而不用選擇的路徑,依然木有成功。
??????后來層層追蹤,發現在這句話之前(打開選擇文件的目錄之前)執行是沒問題的,在后執行則出現異常。
??????CFileDialog dlg( true, "*.*", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_EXPLORER, szFilter );
??????找到了問題的根源之后,上網查 CFileDialog,發現其有默認修改工作目錄的功能,而我執行模塊里用了很多的相對路徑,郁悶。如不想修改,只需多加一個標示即可:
??????CFileDialog dlg( true, "*.*", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_EXPLORER|OFN_NOCHANGEDIR, szFilter );
轉載于:https://www.cnblogs.com/skydesign/archive/2012/01/12/2320384.html
總結
以上是生活随笔為你收集整理的一个偷偷修改工作目录的幕后黑手的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Javascript DOM动态添加表格
- 下一篇: .NET 4 上的REST 框架