Note that there are some explanatory texts on larger screens.

plurals
  1. POcompiling BUTT with mingw64 cannot convert 'char*' to ' LPWSTR {aka wchar_t*}' in assignment
    text
    copied!<p>I'm trying to compile BUTT (<a href="http://butt.sourceforge.net/" rel="nofollow">http://butt.sourceforge.net/</a>) on windows with MingwW64. I seem to be running into errors of the type <code>error: cannot convert 'char*' to 'LPCWSTR {aka const wchar_t*}'</code> the most. Is there some simple option for enabling unicode that I am missing? You can see the options being passed to g++ at the top of my paste.</p> <pre><code>0_0@0_0-PC /z/src/butt-0.1.12 $ make make -C src check for ../config.mk ... ok. make[1]: Entering directory `/z/src/butt-0.1.12/src' g++ -I/usr/local/include -I/usr/local/include -I/usr/local/include -I. -I/usr/ local/include -Wall -O2 -DVERSION=\"butt-0.1.12\" `` -IFLTK -I/usr/local/includ e -I/usr/local/include/FL/images -mwindows -DWIN32 -DUSE_OPENGL32 -D_LARGEFILE_S OURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DFLTK1 -DHAVE_FLTK -ILIBVORB IS -DHAVE_LIBVORBIS -ILIBLAME -DHAVE_LIBLAME -c -o FLTK/Fl_Native_File_Cho oser.o FLTK/Fl_Native_File_Chooser.cpp In file included from FLTK/Fl_Native_File_Chooser.cpp:26:0: FLTK/Fl_Native_File_Chooser_WIN32.cxx: In member function 'void Fl_Native_File_C hooser::ClearOFN()': FLTK/Fl_Native_File_Chooser_WIN32.cxx:244:24: error: cannot convert 'char*' to ' LPWSTR {aka wchar_t*}' in assignment _ofn.lpstrFile = strfree((char*)_ofn.lpstrFile); ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:247:30: error: cannot convert 'LPCSTR {aka const char*}' to 'LPCWSTR {aka const wchar_t*}' in assignment _ofn.lpstrInitialDir = (LPCSTR)strfree((char*)_ofn.lpstrInitialDir); ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx: In member function 'int Fl_Native_File_Ch ooser::showfile()': FLTK/Fl_Native_File_Chooser_WIN32.cxx:312:23: error: cannot convert 'char*' to ' LPWSTR {aka wchar_t*}' in assignment _ofn.lpstrFile = new char[fsize]; ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:319:21: error: cannot convert 'char*' to ' LPCWSTR {aka const wchar_t*}' in assignment _ofn.lpstrTitle = _title ? _title : NULL; ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:321:22: error: cannot convert 'char*' to ' LPCWSTR {aka const wchar_t*}' in assignment _ofn.lpstrFilter = _parsedfilt ? _parsedfilt : NULL; ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:333:53: error: cannot convert 'LPWSTR {aka wchar_t*}' to 'char*' for argument '1' to 'char* strncpy(char*, const char*, si ze_t)' strncpy(_ofn.lpstrFile, _preset_file, _ofn.nMaxFile); ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:334:25: error: no matching function for ca ll to 'Fl_Native_File_Chooser::Unix2Win(WCHAR*&amp;)' Unix2Win(_ofn.lpstrFile); ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:334:25: note: candidate is: FLTK/Fl_Native_File_Chooser_WIN32.cxx:42:20: note: void Fl_Native_File_Chooser:: Unix2Win(char*) #define FNFC_CLASS Fl_Native_File_Chooser ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:272:6: note: in expansion of macro 'FNFC_C LASS' void FNFC_CLASS::Unix2Win(char *s) { ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:42:20: note: no known conversion for arg ument 1 from 'LPWSTR {aka wchar_t*}' to 'char*' #define FNFC_CLASS Fl_Native_File_Chooser ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:272:6: note: in expansion of macro 'FNFC_C LASS' void FNFC_CLASS::Unix2Win(char *s) { ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:343:23: error: cannot convert 'char*' to ' LPCWSTR {aka const wchar_t*}' in assignment _ofn.lpstrInitialDir = strnew(_directory); ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:352:41: error: cannot convert 'char*' to ' LPWSTR {aka wchar_t*}' for argument '2' to 'DWORD GetCurrentDirectoryW(DWORD, LP WSTR)' GetCurrentDirectory(MAX_PATH, oldcwd); ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:372:45: error: cannot convert 'char*' to ' LPCWSTR {aka const wchar_t*}' for argument '1' to 'WINBOOL SetCurrentDirectoryW( LPCWSTR)' if ( oldcwd[0] ) SetCurrentDirectory(oldcwd); ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:377:35: error: cannot convert 'char*' to ' LPCWSTR {aka const wchar_t*}' for argument '1' to 'WINBOOL SetCurrentDirectoryW( LPCWSTR)' SetCurrentDirectory(oldcwd); ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:383:40: error: no matching function for ca ll to 'Fl_Native_File_Chooser::set_single_pathname(WCHAR*&amp;)' set_single_pathname(_ofn.lpstrFile); ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:383:40: note: candidate is: FLTK/Fl_Native_File_Chooser_WIN32.cxx:42:20: note: void Fl_Native_File_Chooser:: set_single_pathname(const char*) #define FNFC_CLASS Fl_Native_File_Chooser ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:208:6: note: in expansion of macro 'FNFC_C LASS' void FNFC_CLASS::set_single_pathname(const char *s) { ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:42:20: note: no known conversion for arg ument 1 from 'LPWSTR {aka wchar_t*}' to 'const char*' #define FNFC_CLASS Fl_Native_File_Chooser ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:208:6: note: in expansion of macro 'FNFC_C LASS' void FNFC_CLASS::set_single_pathname(const char *s) { ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:388:33: error: cannot convert 'LPWSTR {aka wchar_t*}' to 'const char*' in initialization const char *dirname = _ofn.lpstrFile; ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:395:51: error: cannot convert 'LPWSTR {aka wchar_t*}' to 'const char*' in initialization for ( const char *s = _ofn.lpstrFile + dirlen + 1; ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx: In member function 'int Fl_Native_File_Ch ooser::showdir()': FLTK/Fl_Native_File_Chooser_WIN32.cxx:460:21: error: cannot convert 'char*' to ' LPCWSTR {aka const wchar_t*}' in assignment _binf.lpszTitle = _title ? _title : NULL; ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:483:26: error: cannot convert 'char [260]' to 'LPWSTR {aka wchar_t*}' in assignment _binf.pszDisplayName = displayname; ^ In file included from FLTK/Fl_Native_File_Chooser.cpp:26:0: FLTK/Fl_Native_File_Chooser_WIN32.cxx:504:22: error: no matching function for ca ll to 'Fl_Native_File_Chooser::Win2Unix(TCHAR [260])' Win2Unix(path); ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:504:22: note: candidate is: In file included from FLTK/Fl_Native_File_Chooser.cpp:26:0: FLTK/Fl_Native_File_Chooser_WIN32.cxx:42:20: note: void Fl_Native_File_Chooser:: Win2Unix(char*) #define FNFC_CLASS Fl_Native_File_Chooser ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:266:6: note: in expansion of macro 'FNFC_C LASS' void FNFC_CLASS::Win2Unix(char *s) { ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:42:20: note: no known conversion for arg ument 1 from 'TCHAR [260] {aka wchar_t [260]}' to 'char*' #define FNFC_CLASS Fl_Native_File_Chooser ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:266:6: note: in expansion of macro 'FNFC_C LASS' void FNFC_CLASS::Win2Unix(char *s) { ^ In file included from FLTK/Fl_Native_File_Chooser.cpp:26:0: FLTK/Fl_Native_File_Chooser_WIN32.cxx:505:19: error: no matching function for ca ll to 'Fl_Native_File_Chooser::add_pathname(TCHAR [260])' add_pathname(path); ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:505:19: note: candidate is: In file included from FLTK/Fl_Native_File_Chooser.cpp:26:0: FLTK/Fl_Native_File_Chooser_WIN32.cxx:42:20: note: void Fl_Native_File_Chooser:: add_pathname(const char*) #define FNFC_CLASS Fl_Native_File_Chooser ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:216:6: note: in expansion of macro 'FNFC_C LASS' void FNFC_CLASS::add_pathname(const char *s) { ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:42:20: note: no known conversion for arg ument 1 from 'TCHAR [260] {aka wchar_t [260]}' to 'const char*' #define FNFC_CLASS Fl_Native_File_Chooser ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:216:6: note: in expansion of macro 'FNFC_C LASS' void FNFC_CLASS::add_pathname(const char *s) { ^ In file included from FLTK/Fl_Native_File_Chooser.cpp:26:0: FLTK/Fl_Native_File_Chooser_WIN32.cxx:508:22: error: cannot convert 'TCHAR* {aka wchar_t*}' to 'const char*' for argument '1' to 'size_t strlen(const char*)' if ( !strlen(path) ) return(1); // don't return empty pathnames ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx: In member function 'void Fl_Native_File_C hooser::add_filter(const char*, const char*)': FLTK/Fl_Native_File_Chooser_WIN32.cxx:617:56: warning: field precision specifier '.*' expects argument of type 'int', but argument 3 has type 'long long unsigne d int' [-Wformat=] sprintf(name, "%.*s Files", sizeof(name)-10, winfilter); ^ FLTK/Fl_Native_File_Chooser_WIN32.cxx:619:55: warning: field precision specifier '.*' expects argument of type 'int', but argument 3 has type 'long long unsigne d int' [-Wformat=] sprintf(name, "%.*s", sizeof(name)-10, name_in); ^ In file included from FLTK/Fl_Native_File_Chooser_WIN32.cxx:35:0, from FLTK/Fl_Native_File_Chooser.cpp:26: FLTK/Fl_Native_File_Chooser_common.cxx: At global scope: FLTK/Fl_Native_File_Chooser_common.cxx:60:14: warning: 'char* strapp(char*, cons t char*)' defined but not used [-Wunused-function] static char *strapp(char *s, const char *val) { ^ In file included from FLTK/Fl_Native_File_Chooser.cpp:26:0: FLTK/Fl_Native_File_Chooser_WIN32.cxx:61:13: warning: 'void dnullprint(char*)' d efined but not used [-Wunused-function] static void dnullprint(char *wp) { ^ &lt;builtin&gt;: recipe for target `FLTK/Fl_Native_File_Chooser.o' failed make[1]: *** [FLTK/Fl_Native_File_Chooser.o] Error 1 make[1]: Leaving directory `/z/src/butt-0.1.12/src' Makefile:48: recipe for target `butt' failed make: *** [butt] Error 2 </code></pre> <p>Here is the first function that contains some of the errors:</p> <pre><code>// CLEAR MICROSOFT OFN (OPEN FILE NAME) CLASS void FNFC_CLASS::ClearOFN() { // Free any previously allocated lpstrFile before zeroing out _ofn if ( _ofn.lpstrFile ) { _ofn.lpstrFile = strfree((char*)_ofn.lpstrFile); } if ( _ofn.lpstrInitialDir ) { _ofn.lpstrInitialDir = (LPCSTR)strfree((char*)_ofn.lpstrInitialDir); } _ofn.lpstrFilter = NULL; // (deleted elsewhere) int temp = _ofn.nFilterIndex; // keep the filter_value memset((void*)&amp;_ofn, 0, sizeof(_ofn)); _ofn.lStructSize = sizeof(OPENFILENAME); _ofn.nFilterIndex = temp; } ^ </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload