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

Change php variable from jquery value using ajax (same page) -

How can I fetch data from a web server in an android application? -

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