c++ - 'CreateDirectoryW' : cannot convert parameter 1 from 'const char *' to 'LPCWSTR' in OpenCV 2.4.5 and VS 2010 -


i trying sample code bagofwords_classification.cpp opencv 2.4.5 visual studio 2010 (vc++ based). found error code :

error c2664: 'createdirectoryw' : cannot convert parameter 1 'const char *' 'lpcwstr'    

can me give me solution problem? thanks. :)

update v1:

static void makedir( const string& dir ) { #if defined win32 || defined _win32     createdirectory( dir.c_str(), 0 ); #else     mkdir( dir.c_str(), s_irwxu | s_irwxg | s_iroth | s_ixoth ); #endif }  static void makeuseddirs( const string& rootpath ) {     makedir(rootpath + bowimagedescriptorsdir);     makedir(rootpath + svmsdir);     makedir(rootpath + plotsdir); } 

you have code calls createdirectory. when unicode defined, symbol macro createdirectoryw; intention use "ambiguous" function names when you're using tchar instead of char or wchar_t, can switch between compiling unicode or ansi programs.

however, std::string doesn't change according unicode; it's always ansi, c_str method returns char*, never wchar_t*. when have parameter that's ansi, should explicitly call functions ansi, too. in case, call createdirectorya.

you consider using std::basic_string<tchar>, that's heading in direction don't wish go.

a quick fix adjust project settings unicode no longer defined. consult documentation tool set find out how that, or explore ide's project options.


Comments

Popular posts from this blog

jquery - How can I dynamically add a browser tab? -

node.js - Getting the socket id,user id pair of a logged in user(s) -

keyboard - C++ GetAsyncKeyState alternative -