Hi Everybody.
I have some problems compiling my win32 Application with Windows-Threads ("_beginthreadex") against winelib. It seems, that i cannot use the header files in /usr/include/wine/msvcrt.
Wine Version 0.9.8, 0.9.16, 0.9.17 GCC: gcc version 4.0.2 20050901 (prerelease) (SUSE Linux), gcc 3.4.4-r1 ssp-3.4.4-1.0 pie-8.7.8 (gentoo)
1st try: Compile with
$wineg++ -c -I. -I../com -o ../com/b12.o ../com/b12.cppIn file included from ../com/b12.cpp:22: ../com/W32/b12s.cpp:12:21: error: process.h: No such file or directory ../com/W32/b12s.cpp: In function 'void* pvSTART_THREAD(void* (*)(void*), unsigned int, B12_ThreadClass*, B00_ThreadIdType*)': ../com/W32/b12s.cpp:109: error: '_beginthreadex' was not declared in this scope ../com/W32/b12s.cpp: In function 'F02_ErrorType B12_errSET_ENVIRONMENT_STRING(const str&, const str&)': ../com/W32/b12s.cpp:360: error: invalid conversion from 'const char*' to 'char*' ../com/W32/b12s.cpp:360: error: initializing argument 1 of 'int putenv(char*)' winegcc: g++ failed.
okay, i need process.h. so i use the -mno-cygwin - switch, wich includes the "msvcrt"-path and sets some #defines.
Now the 2nd try:
$ wineg++ -c -I. -I../com -o ../com/b12.o ../com/b12.cpp -mno-cygwin /usr/include/c++/4.0.2/cstdio:168: error: '::snprintf' has not been declared /usr/include/c++/4.0.2/cstdio:169: error: '::vfscanf' has not been declared /usr/include/c++/4.0.2/cstdio:170: error: '::vscanf' has not been declared /usr/include/c++/4.0.2/cstdio:172: error: '::vsscanf' has not been declared /usr/include/c++/4.0.2/cstdio:178: error: '__gnu_cxx::snprintf' has not been declared /usr/include/c++/4.0.2/cstdio:179: error: '__gnu_cxx::vfscanf' has not been declared /usr/include/c++/4.0.2/cstdio:180: error: '__gnu_cxx::vscanf' has not been declared /usr/include/c++/4.0.2/cstdio:182: error: '__gnu_cxx::vsscanf' has not been declared /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:55: error: 'uselocale' was not declared in this scope /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:55: error: invalid type in declaration before ';' token /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h: In function 'int std::__convert_from_v(char*, int, const char*, _Tv, __locale_struct* const&, int)': /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:73: error: '__gnu_cxx::__uselocale' cannot be used as a function /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:84: error: 'snprintf' is not a member of 'std' /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:90: error: '__gnu_cxx::__uselocale' cannot be used as a function /usr/include/bits/sigthread.h: At global scope: /usr/include/bits/sigthread.h:32: error: expected ',' or '...' before '*' token /usr/include/c++/4.0.2/cwchar:151: error: '::fwide' has not been declared /usr/include/c++/4.0.2/cwchar:158: error: '::mbsinit' has not been declared [ ... a lot more errors ... ]
If I ommit -mno-cygwin and set "-I/usr/include/wine/msvcrt" , i get the same results lioke with -mno-cygwin.
Where is the Problem? How can i compile this file?
johannes Holzer