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

не компилируется код в VS 2010 - C++

Восстановить пароль Регистрация
 
xym4uk
0 / 0 / 0
Регистрация: 25.06.2012
Сообщений: 26
21.05.2013, 14:31     не компилируется код в VS 2010 #1
есть такой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <windows.h>
#include <iostream>
#include <stdio.h>
#include <string.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{   setlocale(LC_ALL,"Russian");
    char cmd[128];                                  //указатель на строку для команды запуска второго процесса
  //проверяем аргументы командной строки
    if (argc!=1)                                    //если указан какой либо параметр, то первый параметр принимаем за имя
                                                    //второй программы
    strcpy_s(cmd,argv[1]);
    else strcpy_s(cmd,"slave.exe");                 //иначе по умолчанию будет использовано имя slave.exe
    int pid=GetCurrentProcessId();                  //получаем идентификатор текущего процесса
    sprintf(cmd+strlen(cmd)," %d",pid);             //выводим его на экран
    cout << "Master pid: " << pid << endl;
    cout << "Master: starting " << cmd << endl;
    //cout.flush();
    STARTUPINFO info;                               //описываем дополнительные структуры для хранения информации о запускаемом процессе
    PROCESS_INFORMATION pinfo;
    memset(&info,0,sizeof(info));                   //выделяем необходимую память для информационных структур
    info.cb=sizeof(info);
    //пытаемся запустить второй процесс
    if (!CreateProcess(NULL,
                        cmd,                        //командная строка запуска второго процесса
                        NULL,
                        NULL,
                        FALSE,
                        NORMAL_PRIORITY_CLASS,      //приоритет процесса
                        NULL,
                        NULL,
                        &info,
                        &pinfo))    
        {
        //в случае неудачи выводим сообщение об ошибке
        cout<<"Master: Slave процесс не запущен\n";
        cout<<"Master: проверьте правильность указания имени процесса в коммандной строке";
        return 1;
        }
    cout<<"Master: Sleeping\n";
    Sleep(15000);
    cout<<"Master: Exiting\n";
    return 0;
}
в Visual C++ 6.0 все компилируется и запускается.
В Visual Studio 2010 вываливается ошибка: "CreateProcessW: невозможно преобразовать параметр 2 из "char [128]" в "LPWSTR". что ему не нравится?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.05.2013, 14:39     не компилируется код в VS 2010 #2
В свойствах проекта убрать Юникод.
xym4uk
0 / 0 / 0
Регистрация: 25.06.2012
Сообщений: 26
21.05.2013, 14:55  [ТС]     не компилируется код в VS 2010 #3
спасибо, помогло. а не подскажете, где-то глобально можно выключить юникод и инкрементную компоновку?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.05.2013, 15:04     не компилируется код в VS 2010 #4
Если в свойствах проекта, то, наверное, это глобально для данного проекта.
xym4uk
0 / 0 / 0
Регистрация: 25.06.2012
Сообщений: 26
21.05.2013, 15:11  [ТС]     не компилируется код в VS 2010 #5
я имею ввиду, чтобы для новых проектов это дело все было отключено и не надо было в каждом выключать отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.05.2013, 15:26     не компилируется код в VS 2010 #6
Без понятия.
Людвиг Бодмер
 Аватар для Людвиг Бодмер
212 / 209 / 70
Регистрация: 29.03.2013
Сообщений: 555
Завершенные тесты: 2
21.05.2013, 16:27     не компилируется код в VS 2010 #7
xym4uk, нужно выбрать Вид->Диспетчер свойств, развернуть узлы, выбрать одновременно в релиз и дебаг "Microsoft.cpp.<Platform>.users" и щелкнуть правой кнопкой мыши по ним и затем выбрать свойства, там выставить нужные свойства и сохранить эти пользовательские настройки
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.05.2013, 16:38     не компилируется код в VS 2010 #8
Как ни странно, но там нет пункта: Набор символов.
Людвиг Бодмер
 Аватар для Людвиг Бодмер
212 / 209 / 70
Регистрация: 29.03.2013
Сообщений: 555
Завершенные тесты: 2
21.05.2013, 17:20     не компилируется код в VS 2010 #9
alsav22, да, вы правы, а я что-то и не посмотрел
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
21.05.2013, 17:29     не компилируется код в VS 2010 #10
используйте TCHAR и не будет проблем
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.05.2013, 17:40     не компилируется код в VS 2010 #11
Цитата Сообщение от SummerRain Посмотреть сообщение
используйте TCHAR и не будет проблем
Показали бы, как это в данном коде сделать.
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
21.05.2013, 18:00     не компилируется код в VS 2010 #12
Цитата Сообщение от alsav22 Посмотреть сообщение
Показали бы, как это в данном коде сделать.
Окай
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <windows.h>
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <tchar.h>
 
using namespace std;
 
int main(int argc, _TCHAR *argv[])
{   setlocale(LC_ALL,"Russian");
    TCHAR cmd[128];                                  //указатель на строку для команды запуска второго процесса
  //проверяем аргументы командной строки
    if (argc!=1)                                    //если указан какой либо параметр, то первый параметр принимаем за имя
                                                    //второй программы
    _tcscpy(cmd,argv[0]);
    else _tcscpy(cmd,_T("slave.exe"));                 //иначе по умолчанию будет использовано имя slave.exe
    int pid=GetCurrentProcessId();                  //получаем идентификатор текущего процесса
    sprintf((char*)cmd+_tcslen(cmd)," %d",pid);             //выводим его на экран
    cout << "Master pid: " << pid << endl;
    cout << "Master: starting " << cmd << endl;
    //cout.flush();
    STARTUPINFO info;                               //описываем дополнительные структуры для хранения информации о запускаемом процессе
    PROCESS_INFORMATION pinfo;
    memset(&info,0,sizeof(info));                   //выделяем необходимую память для информационных структур
    info.cb=sizeof(info);
    //пытаемся запустить второй процесс
    if (!CreateProcess(NULL,
                        cmd,                        //командная строка запуска второго процесса
                        NULL,
                        NULL,
                        FALSE,
                        NORMAL_PRIORITY_CLASS,      //приоритет процесса
                        NULL,
                        NULL,
                        &info,
                        &pinfo))    
        {
        //в случае неудачи выводим сообщение об ошибке
        cout<<"Master: Slave процесс не запущен\n";
        cout<<"Master: проверьте правильность указания имени процесса в коммандной строке";
        system("PAUSE>0");
        return 1;
        }
    cout<<"Master: Sleeping\n";
    Sleep(15000);
    cout<<"Master: Exiting\n";
    system("PAUSE>0");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2013, 18:10     не компилируется код в VS 2010
Еще ссылки по теме:

C++ Код не компилируется
C++ Не компилируется код в Visual C++ 2010
Не компилируется код C++

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.05.2013, 18:10     не компилируется код в VS 2010 #13
Благодарю! Это дело.
Yandex
Объявления
21.05.2013, 18:10     не компилируется код в VS 2010
Ответ Создать тему
Опции темы

Текущее время: 09:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru