| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Крнвертация AnsiString в wchar_t** |
| Автор: Teran 13.11.2006, 12:09 | ||
| на могу сконвертировать AnsiString в wchar_t**. пробовал так но ничего не вышло:
Кто нибудь знает как это делается? |
| Автор: Partizan 13.11.2006, 12:46 |
| насколько я помню.....перевод между char и wchar_t осуществляют функции AnsiToOem() и OemToAnsi()... В VS они есть точно....насколько я помню ето уже WinAPI функции, поэтому и из билдера мона их поюзать... |
| Автор: pandrew 13.11.2006, 12:55 |
| AnsiString atxt("Help"); WideString wtxt(atxt); BSTR txt=wtxt.c_bstr(); // wchar_t* и BSTR по сути одно и тоже |
| Автор: Vyacheslav 13.11.2006, 13:00 |
| см help TStringConverter |
| Автор: Teran 13.11.2006, 13:01 |
вот а мне нужно еще из wchar_t* сделать wchar_t** |
| Автор: bel_nikita 13.11.2006, 13:03 | ||||||
Сдается мне, будет достаточно: Recognize(&wStr); Добавлено @ 13:04
для чего? |
| Автор: Teran 13.11.2006, 13:05 | ||||
вот именно в жтой строке вомпилятор выдает ошибку:
|
| Автор: Partizan 13.11.2006, 13:07 |
| добавляешь амперсанд ака & куда надо и всё будет ок |
| Автор: Teran 13.11.2006, 13:09 |
я вот тоже так думал а почемуто не работает но компилируется ок |
| Автор: Partizan 13.11.2006, 13:17 |
| нутк ты передаёшь указатель на одномерный массив....а функция ждёт двумерный массив.... желательно бы чтоб ты весь код привёл и ожидаемый результат сообщил) |
| Автор: bel_nikita 13.11.2006, 13:46 | ||
На самом деле одномерный или многомерный массив неважно, разница в адресации и индексации в массиве. Тут ошибка в логике. Метод Recognize принимает указатель на указатель, а это не есть классический массив вида int array[10][10], в котором элементы располагаются последовательно в памяти. В данном случае Recognize принимает массив указателей на одномерные массивы. Т.е. Recognize - код в студию! З.Ы.: надеюсь понятно объяснил |
| Автор: Teran 13.11.2006, 15:07 | ||
дело в том что кода нету это activX dll которую я подключаю она стает как компонент самое интересное что Builder С++ эта функция такая:
а когда ставлу в Delphi то в место BSTR* strFilename ей нужно всеголиш WideString и в delphi он отрабатывает но проблема в том что мне нужно на Buildere писать наверно придется в буилдер добавлять .pas файл |
| Автор: pandrew 13.11.2006, 16:03 | ||||
На BCB потребуется что-нибудь вроде:
Это стандартный вызов для [in,out] строковых параметров |
| Автор: bel_nikita 13.11.2006, 16:16 | ||
| А подробнее о аргументах GetDefaultInterface()->Recognize(strFilename/*[in,out]*/); Может должно быть так:
|
| Автор: Teran 13.11.2006, 21:50 | ||
| Всем спасибо за участие кто с таким столкнется решил проблему так:
|