Код:
..\ibpp\_ibpp.cpp: In member function `ibpp_internals::GDS* ibpp_internals::GDS::Call()':
..\ibpp\_ibpp.cpp:150: error: cannot convert `const char*' to `const WCHAR*' for argument `1' to `HINSTANCE__* LoadLibraryW(const WCHAR*)'
..\ibpp\_ibpp.cpp:170: error: cannot convert `char*' to `WCHAR*' for argument `2' to `DWORD GetModuleFileNameW(HINSTANCE__*, WCHAR*, DWORD)'
..\ibpp\_ibpp.cpp:178: error: cannot convert `char*' to `WCHAR*' for argument `1' to `WCHAR* lstrcatW(WCHAR*, const WCHAR*)'
..\ibpp\_ibpp.cpp:179: error: cannot convert `char*' to `const WCHAR*' for argument `1' to `HINSTANCE__* LoadLibraryW(const WCHAR*)'
..\ibpp\_ibpp.cpp:183: error: cannot convert `char*' to `WCHAR*' for argument `1' to `WCHAR* lstrcatW(WCHAR*, const WCHAR*)'
..\ibpp\_ibpp.cpp:184: error: cannot convert `char*' to `const WCHAR*' for argument `1' to `HINSTANCE__* LoadLibraryW(const WCHAR*)'
..\ibpp\_ibpp.cpp:194: error: cannot convert `const char*' to `const WCHAR*' for argument `2' to `LONG RegOpenKeyExW(HKEY__*, const WCHAR*, DWORD, REGSAM, HKEY__**)'
..\ibpp\_ibpp.cpp:200: error: cannot convert `const char*' to `const WCHAR*' for argument `2' to `LONG RegQueryValueExW(HKEY__*, const WCHAR*, DWORD*, DWORD*, BYTE*, DWORD*)'
..\ibpp\_ibpp.cpp:202: error: cannot convert `char*' to `WCHAR*' for argument `1' to `WCHAR* lstrcatW(WCHAR*, const WCHAR*)'
..\ibpp\_ibpp.cpp:203: error: cannot convert `char*' to `const WCHAR*' for argument `1' to `HINSTANCE__* LoadLibraryW(const WCHAR*)'
..\ibpp\_ibpp.cpp:212: error: cannot convert `const char*' to `const WCHAR*' for argument `1' to `HINSTANCE__* LoadLibraryW(const WCHAR*)'
..\ibpp\_ibpp.cpp:217: error: cannot convert `const char*' to `const WCHAR*' for argument `1' to `HINSTANCE__* LoadLibraryW(const WCHAR*)'
погуглив я понял что дело в том что кодировка символов в mingw ANSI, а в вызываемых функциях API Windows - unicode. libstdc++ в mingw пока unicode не поддерживает, можно вместо libstdc++ использовать stlport, но скачав его я понял что с установкой заморочек много.
Решил я проблему так: в файл _ibpp.cpp добавил
Код: Выделить всё
#if (defined(__GNUC__) && defined(IBPP_WINDOWS))
#define LoadLibrary(...) LoadLibraryA(__VA_ARGS__)
#define lstrcat(...) lstrcatA(__VA_ARGS__)
#define GetModuleFileName(...) GetModuleFileNameA(__VA_ARGS__)
#define RegOpenKeyEx(...) RegOpenKeyExA(__VA_ARGS__)
#define RegQueryValueEx(...) RegQueryValueExA(__VA_ARGS__)
#endifв Linux тоже сразу не откомпилировалось, что бы откомпилировалось я в файл .pro добавил
Код: Выделить всё
LIBS+=-lfbclientтеперь всё работает.
теперь если кто-нить столкнётся с этой проблемой, то сможет найти решение здесь