![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
maxi91m |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 191 Регистрация: 14.1.2007 Где: Нижний Новгород Репутация: нет Всего: нет |
Код компилируется но блокнот не запускается. Что я делаю не так?(ОС Win7)
![]() --------------------
|
|||
|
||||
artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 5 Всего: 64 |
А так:
? -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
maxi91m |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 191 Регистрация: 14.1.2007 Где: Нижний Новгород Репутация: нет Всего: нет |
Да так заработало. Блин а почему с одним слешем не работает?
А почему нельзя так написать? CreateProcess(NULL,"C:\\Windows\\notepad.exe",NULL,NULL,FALSE,0,NULL,NULL,&si,&pi) Возникает ошибка Error 1 error C2664: 'CreateProcessW' : cannot convert parameter 2 from 'const char [23]' to 'LPWSTR' Если явно преобразовываю CreateProcess(NULL,(LPWSTR)"C:\\Windows\\notepad.exe",NULL,NULL,FALSE,0,NULL,NULL,&si,&pi) то запускается но на этом месте возникает какая то ошибка Что делает волшебного _tcscpy(buff, TEXT("C:\Windows\notepad.exe")); Это сообщение отредактировал(а) maxi91m - 21.1.2010, 21:49 --------------------
|
|||
|
||||
artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 5 Всего: 64 |
Спецсимвол. Нужно экранировать. -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
maxi91m |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 191 Регистрация: 14.1.2007 Где: Нижний Новгород Репутация: нет Всего: нет |
Что скажите?(см пост выше)
--------------------
|
|||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
потому что напр. "\n" - это на Си - переход на новую строку. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 5 Всего: 64 |
\ - служит для экранирования. А вот чтобы использовать сам символ '\', нужно его заэкранировать. -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
maxi91m |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 191 Регистрация: 14.1.2007 Где: Нижний Новгород Репутация: нет Всего: нет |
Со слешами разобрались, а вот почему когда я просто строку передаю не работает?
--------------------
|
|||
|
||||
GremlinProg |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
волшебство в данном случае делает макрос TEXT, а не _tcscpy, а константную строку нельзя передавать напрямую в CreateProcess потому что она может подвергаться изменениям:
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||
|
|||||
artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 5 Всего: 64 |
maxi91m, сори
![]() ![]() Ну GremlinProg уже написал в чём дело. -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
макрос TEXT
у тебя проект в UNICODE а ты свою строку в CreateProcess пишешь как char, а в юникоде строки определяются как widechar. в винде существую 2 функции одна для юникода CreateProcessW, а другая для обычных строк CreateProcessA, а CreateProcess это всего лишь макрос. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |