最近我一直在開發一個小型的OpenGL遊戲。它的所有內容都可以在調試版本中正常運行,但是當我構建版本時,會出現奇怪的Access Violation異常。運行發佈版應用程序時訪問衝突異常
我搜遍了整個代碼,看起來問題出現在我嘗試打開文件時。以下是我認爲問題來自的功能:
#define LOCAL_FILE_DIR "data\\"
#define GLOBAL_FILE_DIR "..\\data\\"
std::string FindFile(const std::string &baseName)
{
std::string fileName = LOCAL_FILE_DIR + baseName;
std::ifstream testFile(fileName.c_str()); // The code breaks here
if(testFile.is_open())
return fileName;
fileName = GLOBAL_FILE_DIR + baseName;
testFile.open(fileName.c_str());
if(testFile.is_open())
return fileName;
throw std::runtime_error("Could not find the file " + baseName);
}
此代碼與加載GLSL着色器相關聯。函數使用着色器的文件名,然後將其傳遞給FindFile以查找所需的文件。
我懷疑崩潰的原因是在代碼中。 –
檢查你的代碼是否包含任何'assert'。 –
'std :: ifstream'構造函數不會拋出異常AFAIK – AJG85