Вопрос № 75351: Здравствуйте.
VS 2005 C++.
Постепенно подбираюсь к API, и столкнулся с проблемками:
типы : LPCWSTR,LPCSTR, PTSTR ,PWSTR, PCWSTR и так далее.
Как привык в консоле обьявляю const char*, char str[80]="", std::string ...
Ком...Вопрос № 75371: Здраствуйте, обращаюсь вам с вопросом по поводу косяка в Borland C++. При компеляции программы он пишет, что запуск программы возможен, но при запуске в строке ошибок вылезает ошибка типа fatal error, и прога не запускается. я конечно установил друго...Вопрос № 75484: Из VC++ запускаю через CreateProcess консольное приложение.
Помнится мне, что как-то можно красиво программно перехватить вывод этого консольного приложения и перенаправить его по своему желанию (не файл!).
Прошу уважаемых экспертов напомнить...
Вопрос № 75.351
Здравствуйте.
VS 2005 C++.
Постепенно подбираюсь к API, и столкнулся с проблемками:
типы : LPCWSTR,LPCSTR, PTSTR ,PWSTR, PCWSTR и так далее.
Как привык в консоле обьявляю const char*, char str[80]="", std::string ...
Компилятор ругается - разные типы параметров функций.
Можно конечно явно приводить, но мне кажется это как-то топорно.
Подскажите, как это делают профи.
И второе , как в Win32 приложениях с русскими буквами : в консоле пользовал CharToOem.
Из ресурса читает нормально, из кода - кракозяблы, тоже CharToOem использовать или что то другое(может в настройках)?
Но смотрю Шилдт в своём коде пишет прямо(понимаю что там под 6).
Подскажите как быть.
Заранее спасибо.
P.S. приложении куски из Шилдта ,
если можно адаптируйте под VS2005
Приложение:
Отправлен: 12.02.2007, 11:48
Вопрос задал: Kos (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Mitya86
Здравствуйте, Kos!
1) Насколько я знаю профи просто приводят типы
2) в 2005 студии перед строкой ставь букву L например cout<<L"Всем привет";
Ответ отправил: Mitya86 (статус: 3-ий класс)
Ответ отправлен: 12.02.2007, 13:27 Оценка за ответ: 4 Комментарий оценки: Спасибо, обычно пользуем(вал) char*, char[], const ... но API-функции просят в качестве параметров несколько другое, с общей помощью по чуть чуть приближаюсь
Вопрос № 75.371
Здраствуйте, обращаюсь вам с вопросом по поводу косяка в Borland C++. При компеляции программы он пишет, что запуск программы возможен, но при запуске в строке ошибок вылезает ошибка типа fatal error, и прога не запускается. я конечно установил другой компилятор, но в компьютерном классе стоит такая же версия сишки, что же можно сделать???
Отвечает: Thread
Здравствуйте, Алексей xxx!
Хотелось бы уточнить - все программы вылетают с ошибкой или только какая-то конкретная.
Если какая-то конкретная, то скорее всего тут не косяк компилятора, а ваш собственный. С++ - очень капризный язык. Кроме того существуют различные стандарты, различные компиляторы используют различные стандарты, и сто входит в стандарт одного компилятора, может не входить в стандарт другого. И не стоит думать, что если программа скомпилирована, то она должна запускаться, это не паскаль... Приведите программу, которую пытаетесь скомпилировать.
Если же вылетают вообще все программы и вы 100% уверены, что делаете все правильно, то просто попробуйте разные версии Borland C++, в крайнем случае обратитесь к преподавателю.
Ответ отправил: Thread (статус: 4-ый класс)
Ответ отправлен: 12.02.2007, 15:29
Вопрос № 75.484
Из VC++ запускаю через CreateProcess консольное приложение.
Помнится мне, что как-то можно красиво программно перехватить вывод этого консольного приложения и перенаправить его по своему желанию (не файл!).
Прошу уважаемых экспертов напомнить это решение. Спасибо.
Отправлен: 13.02.2007, 06:48
Вопрос задал: PostM (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Jadd
Здравствуйте, PostM!
Активно пользуемся поиском на портале, т.к. тут был подобный вопрос и не раз (!!!).
Затем идем в MSDN, где для функции CreatePipe есть готовый пример перенаправления ввода-вывода.
Успехов.
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Профессионал) Адрес: Санкт-Петербург WWW:http://www.sport-diary.ru ---- Ответ отправлен: 13.02.2007, 07:49 Оценка за ответ: 5
Отвечает: Tek
Здравствуйте, PostM!
В CreateProcess есть параметр lpStartupInfo - указатель на структуру STARTUPINFO,
а у этой структуры есть поля
hStdInput, hStdOutput, hStdError.
Дальше вдумчиво курим MSDN? не забывая прочитать и про поле dwFlags
--------- WinApi - жутко неудобные костыли, MFC и VCL - немногим полезнее, но ничего лучше еще не создано (C)Почти Уинстон Черчилль :)
Ответ отправил: Tek (статус: 9-ый класс)
Ответ отправлен: 13.02.2007, 17:38