diff --git a/modules/contrib/src/inputoutput.cpp b/modules/contrib/src/inputoutput.cpp index 0c8175352c1218eca083a6b9c265e965bfdc1172..f545d15f7002b360e09e8ecccfce13eb04854bcf 100644 --- a/modules/contrib/src/inputoutput.cpp +++ b/modules/contrib/src/inputoutput.cpp @@ -1,5 +1,6 @@ #include "opencv2/contrib/contrib.hpp" +#include #if defined(WIN32) || defined(_WIN32) #include @@ -16,7 +17,7 @@ namespace cv list.clear(); std::string path_f = path + "/" + exten; #ifdef WIN32 - #if HAVE_WINRT + #ifdef HAVE_WINRT WIN32_FIND_DATAW FindFileData; #else WIN32_FIND_DATA FindFileData; @@ -28,7 +29,7 @@ namespace cv wchar_t* wpath = (wchar_t*)malloc((size+1)*sizeof(wchar_t)); wpath[size] = 0; mbstowcs(wpath, path_f.c_str(), path_f.size()); - hFind = FindFirstFileW(wpath, &FindFileData); + hFind = FindFirstFileExW(wpath, FindExInfoStandard, &FindFileData, FindExSearchNameMatch, NULL, 0); free(wpath); #else hFind = FindFirstFileA((LPCSTR)path_f.c_str(), &FindFileData); @@ -50,7 +51,7 @@ namespace cv char* fname; #ifdef HAVE_WINRT size_t asize = wcstombs(NULL, FindFileData.cFileName, 0); - char* fname = (char*)malloc((asize+1)*sizeof(char)); + fname = (char*)malloc((asize+1)*sizeof(char)); fname[asize] = 0; wcstombs(fname, FindFileData.cFileName, asize); #else @@ -104,7 +105,7 @@ namespace cv std::string path_f = path + "/" + exten; list.clear(); #ifdef WIN32 - #if HAVE_WINRT + #ifdef HAVE_WINRT WIN32_FIND_DATAW FindFileData; #else WIN32_FIND_DATA FindFileData; @@ -116,7 +117,7 @@ namespace cv wchar_t* wpath = (wchar_t*)malloc((size+1)*sizeof(wchar_t)); wpath[size] = 0; mbstowcs(wpath, path_f.c_str(), path_f.size()); - hFind = FindFirstFileW(wpath, &FindFileData); + hFind = FindFirstFileExW(wpath, FindExInfoStandard, &FindFileData, FindExSearchNameMatch, NULL, 0); free(wpath); #else hFind = FindFirstFileA((LPCSTR)path_f.c_str(), &FindFileData); @@ -130,13 +131,13 @@ namespace cv do { if (FindFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY && - strcmp(FindFileData.cFileName, ".") != 0 && - strcmp(FindFileData.cFileName, "..") != 0) + wcscmp(FindFileData.cFileName, L".") != 0 && + wcscmp(FindFileData.cFileName, L"..") != 0) { char* fname; #ifdef HAVE_WINRT size_t asize = wcstombs(NULL, FindFileData.cFileName, 0); - char* fname = (char*)malloc((asize+1)*sizeof(char)); + fname = (char*)malloc((asize+1)*sizeof(char)); fname[asize] = 0; wcstombs(fname, FindFileData.cFileName, asize); #else diff --git a/modules/core/src/system.cpp b/modules/core/src/system.cpp index a90fb8b588693d77043141a1aeebd1b4b329b933..9279f4a224c1babe05d1ac39c8328dc7ef116245 100644 --- a/modules/core/src/system.cpp +++ b/modules/core/src/system.cpp @@ -81,7 +81,6 @@ #ifdef HAVE_WINRT #include -#pragma comment(lib, "MinCore_Downlevel") std::wstring GetTempPathWinRT() {