![]() |
|
|
![]()
|
|
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Нужно из программы запустить файл справки *.chm.
Когда работал в Buider 6, то функции WinExec и ShelExecute работали как надо. Сейчас же в Buider XE какая-то непонятка с типами параметров этих функций. То ему надо wchar_t, а я даю const char, то наоборот... Как правильно записать эти функции в Buider XE? |
|||
|
||||
| sawfish |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 30.7.2008 Где: Новосибирск Репутация: 8 Всего: 8 |
У меня в XE не ругается. Запускаю вот так:
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 18 Всего: 135 |
ShelExecuteA( ... "help.chm" ... )
или ShelExecuteW( ... L"help.chm" ... ) или ShelExecute( ... TEXT( "help.chm" ) ... ) -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| Нитонисе |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
А что у вас такое "hh" перед "help"? Сделал также - работает, но ведь эта команда ищет файл в текущей директории. А какая директория текущая в данный момент - неизвестно. Потому я хотел сделать так:
И получил две ошибки компилятора на второй строчке.
|
||||
|
|||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Проблема известная. Алгоритм решения:
PS. Пользователи VS от MS прошли эту стадию в начале 2000г (когда вышла первая студия VS net 2003) |
|||
|
||||
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
||||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
В том, что сообщения об ошибках типа Cannot convert 'wchar_t *' to 'const char *' и/или приведения типов в программе типа (LPWSTR)p будут сразу вызывать реакцию 'Опять этот гре$%#$# Unicode!' с последующим его отключением в настройках проекта (если это возможно). Следующей стадией будет осознанное использование Unicode'а везде вместо обычных char* строк (лично я до этой стадии пока еще не дошел И вообще, это самые часто посещаемые грабли, возникшие во всех IDE после принудительного введения туда проектов с включенным по умолчанию Unicode'ом |
|||
|
||||
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
||||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Второе. Если проект предполагается использовать хоть где нибудь, за исключением личного компьютера разработчика, то вопрос языков в интерфейсе рано или поздно всплывет. И вот тогда 'будет мучительно больно', если об Unicode не подумали сразу |
|||
|
||||
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Так а что делать с функциями, которые хотят char? Заставить их работать нельзя?
|
|||
|
||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 18 Всего: 135 |
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
||||
|
||||
| sawfish |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 30.7.2008 Где: Новосибирск Репутация: 8 Всего: 8 |
hh - это виндовосинская утилита отображения справочной информации hh.exe. В качестве параметра ей передается файл справки. Для Семерки это вроде уже не катит. Для неизвестной текущей директории у меня работает такой код:
ну, или так:
Добавлено через 7 минут и 29 секунд Кста, вот тема была, там volatile подсказывает, чего можно сделать. |
||||||
|
|||||||
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
borisbn, ваши функции работают (только Shell...), но мне нужно не просто имя файла справки указать, а путь к ней.
Помещаю путь в строку UnicodeString, но этот тип не воспринимется функцией ShellExecute. Функция преобразования c_str() не работает. Это сообщение отредактировал(а) Нитонисе - 23.11.2011, 12:50 |
|||
|
||||
| ZVano |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 259 Регистрация: 11.12.2006 Где: Украина, Кривой Р ог Репутация: 1 Всего: 4 |
Я делаю так.
-------------------- НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению. Гуглим "Как правильно задавать вопросы" |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |