| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Проблемы со строковой переменной. |
| Автор: Dimonchik 27.11.2005, 23:26 | ||
| Привет всем! Подскажите, пожалуйста, что нужно сделать для того, чтобы переменная inBuf в ниже описанном листинге содержала в себе полную строку, а не первый символ строки, потому что у меня всё время на экран выдаётся "С", т.е. первый символ??? В данный момент я пользуюсь Visual Studio 2005 (Beta 2). Буду очень признателен, если подскажете в чём проблема.
|
| Автор: Aleksandor 28.11.2005, 10:52 |
| У тебя в четвертом параметре стоит LPWSTR, а фунцция просит LPTSTR, да и буфер объявлен как CHAR |
| Автор: Neitron 28.11.2005, 11:12 |
| Чтобы было меньше путаниц, сразу вызывай GetPrivateProfileStringW |
| Автор: Dimonchik 28.11.2005, 13:24 |
| "У тебя в четвертом параметре стоит LPWSTR, а фунцция просит LPTSTR, да и буфер объявлен как CHAR " Какой же тогда тип переменной использовать для буфера? Я уже пробовал и CHAR и TCHAR... Всё равно строка не выводится, а мне нужно, чтобы функция GetPrivateProfileString() возвращала строку посредством inBuf, а не двоичные данные или ещё Бог знает что... |
| Автор: Aleksandor 28.11.2005, 14:12 |
| А прога в Unicode откомпилирована? Тогда бери TCHAR для буфера и возможно необходимо конвертировать перед выводом широкую строку в обычную (не Unicode) функцией WideCharToMultiByte DWORD dwCount=GetPrivateProfileString(..... возвращает сколько символов? еще можно попробовать вместо пустой строки (третий параметр) использовать что-то типа "Requested string is not found" |
| Автор: Neitron 28.11.2005, 18:02 | ||
|