CSDN搬家失敗,手動匯出markdown後再匯入部落格園
最近在搞單目相機位姿估計,相機標定參考了【OpenCV3 學習筆記 】相機標定函式 calibrateCamera( ) 使用詳解(附相機標定程式和資料)提供的程式碼。
/*
@param File_Directory 為資料夾目錄
@param FileType 為需要查詢的檔案型別
@param FilesName 為存放檔名的容器
*/
void getFilesName(string &File_Directory, string &FileType, vector<string>&FilesName) {
string buffer = File_Directory + "\\*" + FileType;
_finddata_t c_file; // 存放檔名的結構體
long hFile;
hFile = _findfirst(buffer.c_str(), &c_file); //找第一個檔案命
if (hFile == -1L) // 檢查資料夾目錄下存在需要查詢的檔案
printf("No %s files in current directory!\n", FileType);
else
{
string fullFilePath;
do
{
fullFilePath.clear();
//名字
fullFilePath = File_Directory + "\\" + c_file.name;
FilesName.push_back(fullFilePath);
} while (_findnext(hFile, &c_file) == 0); //如果找到下個檔案的名字成功的話就返回0,否則返回-1
_findclose(hFile);
}
}
執行到
//long hFile;
_int64 hFile;
時報錯,參考_findnext() 報錯寫入位置 0x000000000BE2A940 時發生訪問衝突。x64 環境下,控制代碼也在變化,要用_int64 定義控制代碼,而不是 long。因此修改
//long hFile;
_int64 hFile;
問題解決