Необходимо вызвать версию функции в Юникоде, которая равна SQLGetPrivateProfileStringW
.См. этот документ Microsoft
Если приложение скомпилировано с помощью _UNICODE #define, заголовочный файл ODBC сопоставит вызовы функций без декорации с версией Unicode.
и этот
Вы можете перекомпилировать приложение как приложение Unicode одним из двух способов:
- Включить содержащий Unicode #defineв заголовочном файле Sqlucode.h в приложении.
- Скомпилируйте приложение с параметром Unicode компилятора.(Эта опция будет отличаться для разных компиляторов.)
См. odbcinst.h :
#ifdef UNICODE
...
#define SQLGetPrivateProfileString SQLGetPrivateProfileStringW
...
, где SQLGetPrivateProfileStringW
объявлено как:
int INSTAPI SQLGetPrivateProfileStringW
(
_In_opt_ LPCWSTR lpszSection,
_In_opt_ LPCWSTR lpszEntry,
_In_opt_ LPCWSTR lpszDefault,
_Out_writes_opt_(cchRetBuffer) LPWSTR lpszRetBuffer,
int cchRetBuffer,
_In_opt_ LPCWSTR lpszFilename
);
Unicode-версия функции получает LPCWSTR
и LPWSTR
, которые являются указателями на строку из 16-битных символов Unicode.Какая бы другая функция ни получала эти значения, она также должна быть версией Unicode.