Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2013, 09:16   #1
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию Путаница с Ansi и Unicode версиями функции CreateProcess

Multibyte работает:
CreateProcessA("C:\\WINDOWS\\notepa d.exe",....)
WideChar нет:
CreateProcess(PChar("C:\\WINDOWS\\n otepad.exe"),...)
Ошибок не выдается,но блокнот не стартует
calypso вне форума Ответить с цитированием
Старый 22.02.2013, 09:21   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Посмотри что выдает GetLastError() после попытки создания процесса.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.02.2013, 09:51   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну с двойными косыми как бы не должно, это не С все же.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.02.2013, 09:59   #4
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

Embarcadero XE2 C++
C GetLastError чего то тоже проблема возникла: ShowMessage(IntToStr(GetLastError)) ругается компилятор
calypso вне форума Ответить с цитированием
Старый 22.02.2013, 10:46   #5
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

С GetLastError разобрался,оказывается нужно такое шаманство:
int oshibka=GetLastError(); // иначе компилятор ругаеццо на unsigned long
ShowMessage(IntToStr(oshibka));

Выдает код 2, что означает ERR_COMMON_ERROR 2 Общая ошибка
http://www.vedikhin.ru/2006/10/getla...ror-codes.html
calypso вне форума Ответить с цитированием
Старый 22.02.2013, 11:06   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хм... Винда х64?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.02.2013, 11:19   #7
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

Нет ХР 32 бита.Открыл свой проект в OllyDbg и глянул что там творится:
проблема тут: PChar("C:\\WINDOWS\\n otepad.exe") ,конвертируется мусор (знаки вопроса).Ошибка выдается ERROR_FILE_NOT_FOUND
Копать видимо надо в сторону функции StringToWideChar?
calypso вне форума Ответить с цитированием
Старый 22.02.2013, 13:16   #8
StIX-S
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 69
По умолчанию

А там случайно не надо поставить L перед двойными кавычками?
StIX-S вне форума Ответить с цитированием
Старый 22.02.2013, 15:23   #9
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

Цитата:
Сообщение от StIX-S Посмотреть сообщение
А там случайно не надо поставить L перед двойными кавычками?
Точно в цель.PChar заменяем на L и всё работает
calypso вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Unicode to ANSI. Denutrror Общие вопросы Delphi 10 25.08.2012 16:15
Из ANSI в UNICODE Mrshilov Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 06.08.2012 08:55
ANSI & UNICODE AD0 Общие вопросы Delphi 0 15.06.2011 09:21
unicode to ansi Евгений79 Общие вопросы Delphi 10 25.05.2011 22:04
Конвертировать строку из ANSI в UNICODE Миша Общие вопросы Delphi 8 28.12.2009 18:23