通過CFileDialog::GetPathName讀入的路徑以CString存放,如果想用OpenCV的capture讀入此路徑則需要將其轉化爲char*。
需要注意:
CString中的路徑反斜槓是單斜槓,考慮轉義字符,轉爲char*之前要先替換成雙斜槓。
考慮到中文路徑的可能性,避免通過(LPCWSTR)強制轉換。
實現如下:
CString fileFullName; char aviFileName[FILENAMELEN]; CFileDialog dlg(TRUE); if(dlg.DoModal()==IDOK) { fileFullName=dlg.GetPathName(); fileFullName.Replace(_T("\\"), _T("\\\\")); //VS2010中需要_T,VC6不需要 USES_CONVERSION; strcpy(aviName, T2A(fileFullName)); }