Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
saserlend
11 / 11 / 1
Регистрация: 25.11.2011
Сообщений: 145
#1

CreatProcess() и 2012 Студия - C++

02.03.2014, 11:57. Просмотров 352. Ответов 4
Метки нет (Все метки)

Не могу разобраться с типом LPWSTR. В 6.0 работает и не жужжит, а в 12 ругается.
Что такого особенного в 12, и как проще всего решить этот вопрос?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
 
    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    
    CreateProcess(NULL, "calc.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
    printf("END\n");
}
error C2664: CreateProcessW: невозможно преобразовать параметр 2 из "const char [9]" в "LPWSTR"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2014, 11:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос CreatProcess() и 2012 Студия (C++):

Студия 2010 - C++
В один прекрасный момент MSVS перестал мне при отладке показывать локальные переменные. Подскажите что с ним могло произойти? Может в...

Так установилась ли студия? - C++
Вы знаете, был совершено уверен, что позавчера установил визуал студию 2012. Она не брыкалась, минут за 5-8 стала и сообщила о установке...

Ругается студия на индефикатор - C++
Ругается на &lt;&lt; перед cout и на return 0; #include &lt;iostream&gt; int(main) { std::&lt;&lt; cout &lt;&lt; &quot;Move options: \n&quot;; std:: &lt;&lt;...

Студия с командной строки - C++
Меня окончательно задолбали IDE, и я хочу юзить с командной строки c++ компиляторы студии: 1. Microsoft Developmet Studio 4.0, 2....

Студия не воспринимает операторы С++ - C++
С недавнего времени Visual Studio 2010 перестал идентифицировать операторы С++. Для примера в этом коде #include &lt;iostream&gt; #include...

Студия выдает ошибки - C++
Студия при компиляции выдает ошибки, раньше на пк стояла другая винда там все работало а с новой не хочет, компилирует тока си-шарп,...

4
Убежденный
Системный программист
Эксперт С++
15685 / 7195 / 1136
Регистрация: 02.05.2013
Сообщений: 11,630
Записей в блоге: 1
Завершенные тесты: 1
02.03.2014, 12:24 #2
LPWSTR - это Long Pointer to Wide-char STRing, указатель на строку в "широких" символах.
Т.е. там подразумевается использование wchar_t.

В Visual C++, начиная, кажется, то ли с 2003, то ли с 2005, Unicode задействован
по умолчанию и отключать его я крайне не советую (будут кракозябры на других
локализациях Windows, можете сами проверить и убедиться).

Поэтому должно быть не "calc.exe", а L"calc.exe". Это во-первых.

Во-вторых, юникодная версия CreateProcess может изменять аргумент
command line, об этом явно сказано в документации.
Поэтому правильнее так, например:

C
1
2
3
wchar_t pCmdLine[] = {L"calc.exe"};
 
CreateProcess(NULL, pCmdLine, ...
1
saserlend
11 / 11 / 1
Регистрация: 25.11.2011
Сообщений: 145
02.03.2014, 12:35  [ТС] #3
А что за 'L' ?
C++
1
wchar_t pCmdLine[] = {L"calc.exe"};
0
Jupiter
Каратель
Эксперт С++
6558 / 3979 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
02.03.2014, 12:39 #4
http://habrahabr.ru/post/164193/
0
Убежденный
Системный программист
Эксперт С++
15685 / 7195 / 1136
Регистрация: 02.05.2013
Сообщений: 11,630
Записей в блоге: 1
Завершенные тесты: 1
02.03.2014, 12:41 #5
Строковой литерал.
Такой же, как и обычно, только для "широких" символов (2 байта на символ в Win32).
0
02.03.2014, 12:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2014, 12:41
Привет! Вот еще темы с ответами:

>< студия косячит или я? - C++
помогите разобраться, я уже задолбался воевать со студией, постоянно что-то не нравится, некоторые буквы в слове синие, остальные черные....

Студия зависает намертво при отладке - C++
Здравствуйте. У меня следующая проблема. По учёбе пользуюсь десятой студией. Последние 2 года писал на С#. Возникла необходимость написать...

Ошибка со списком, возможно студия тупит - C++
Нужен список, начал вспоминать с банального, но не даёт... Выводит ошибку: Необработанное исключение по адресу 0x00E560B9 в Struct.exe:...

Ух ты мне визуал студия что-то подсказывает - C++
Заметил- временами навожу мышку- а там что-то!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru