Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 671
от 18.02.2007, 09:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 467, Экспертов: 59
В номере:Вопросов: 3, Ответов: 4


Вопрос № 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, и прога не запускается. я конечно установил другой компилятор, но в компьютерном классе стоит такая же версия сишки, что же можно сделать???
Отправлен: 12.02.2007, 14:10
Вопрос задал: Алексей xxx (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: 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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.44 beta от 26.01.2007
Яндекс Rambler's Top100

В избранное