Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 7

CreateProcess не работает

04.11.2009, 18:23. Показов 5754. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Делаю программу, которая запускает внешнюю прогу. Инструментарий - Microsoft Visual Studio 2008/
Проблема: в обработчик события нажатия кнопки помещаю CreateProcess()
C++
1
2
CreateProcess("c:\\prog\\prodiz.exe",NULL,
                 NULL,NULL,FALSE,NULL,NULL,NULL,&cif,&pi);
при компиляции выдаёт ошибку: error C2065: NULL: необъявленный идентификатор
Подскажите, что не так?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.11.2009, 18:23
Ответы с готовыми решениями:

Не работает CreateProcess
Ребята, пытаюсь так создать процесс, но функция возвращает False. Пытаюсь в студии 2010 собрать такой код: PROCESS_INFORMATION pi =...

CreateProcess не работает
Приветствую, уважаемые перекурил почти все топики на форуме, но свою проблему так и не смог решить #include <stdio.h> ...

CreateProcess странно работает
Привет. Есть такая функция CreateProcess. Я хочу запустить файл, предположим, в D:\Program files\1.exe Можно запускать его получается...

12
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
04.11.2009, 19:52
сравни.
C++
1
2
CreateProcess("c:\\prog\\prodiz.exe",NULL,\
                 NULL,NULL,FALSE,NULL,NULL,NULL,&cif,&pi);
1
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 7
05.11.2009, 07:26  [ТС]
Patch спасибо за поправку всё заработало.
И ещё вопрос: нужно в сиситему установить шрифт, использую функцию :
C++
1
AddFontResource("D:\\__Proga\\font\\georgia.TTF");
и опять выдаёт ошибку:
error LNK2028: ссылка на неразрешенную лексему (0A000019) "extern "C" int __stdcall AddFontResourceA(char const *)" (?AddFontResourceA@@$$J14YGHPBD@Z) в функции "private: void __clrcall progaFont::Form1::Form1_Load(class System::Object ^,class System::EventArgs ^)" (?Form1_Load@Form1@progaFont@@$$FA$AAMXP $AAVObject@System@@P$AAVEventArgs@4@@Z)
в чём причина?
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
05.11.2009, 08:29
компилятор не знает, где найти функцию.
вероятно, нужная lib не подключена.
если верить msdn, нужна Gdi32.lib.
проверь в параметрах студии.
1
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 7
05.11.2009, 15:15  [ТС]
Patch спасибо за подсказку, опять всё получилось и последний вопрос:
для того чтобы exe-шник запускался на других компах делаю MFC статической, но после этого при билде выдаётся ошибка: Ошибка: командная строка error D8016: несовместимые параметры командной строки '/MT' и '/clr: pure' файл cl?
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
05.11.2009, 18:54
читаем MSDN.
/MT
Указывает на то, что приложение должно использовать статическую многопотоковую версию библиотеки времени выполнения. Создает определение _MT и указывает компилятору на необходимость размещения имени библиотеки LIBCMT.lib в файле OBJ, чтобы компоновщик использовал библиотеку LIBCMT.lib для разрешения внешних символов.
Чистый тип (/clr:pure)
Чистые сборки (скомпилированные с помощью параметра /clr:pure) могут содержать как неуправляемые, так и управляемые типы данных, но только управляемые функции. Подобно смешанном сборкам, чистые сборки обеспечивают взаимодействие со неуправляемыми библиотеками DLL посредством вызова P/Invoke (см. Использование явного вызова Pinvoke в C++ (атрибут DllImport)), но функции взаимодействия C++ недоступны. Более того, чистые сборки не могут экспортировать функции, которые вызываются из функций машинного кода, поскольку точки входа в чистых сборках используют соглашение о вызове __clrcall.
Преимущества /clr:pure
*
Более высокая производительность: поскольку чистые сборки содержат только MSIL, в них нет встроенных функций и, следовательно, отсутствует потребность в управляемых/неуправляемых переходах. (Вызовы функций посредством P/Invoke являются исключением из этого правила.)
*
Информированность о домене приложения: управляемые функции и типы данных CLR существуют внутри Домены приложений, что влияет на их видимость и доступность. Чистые сборки осведомлены о домене (для каждого типа предусмотрена функция __declspec(appdomain)), поэтому доступ к типам и функциям из других компонентов .NET проще и безопаснее. В результате этого чистые сборки проще взаимодействуют с другими компонентами .NET, чем смешанные сборки.
*
Внедисковая загрузка: чистые сборки могут загружаться в память или даже передаваться потоком. Это особенно важно при использовании сборок .NET как хранимых процедур. Этот аспект отличается от смешанных сборок, которые из-за зависимости от механизмов загрузки Windows, чтобы выполняться, должны существовать на диске.
*
Отражение: невозможно отражать смешанные исполняемые файлы, но имеется полная поддержка отражения чистых сборок. Дополнительные сведения см. в разделе Отражение в C++.
*
Управляемость ведущего приложения: поскольку чистые сборки содержат только MSIL, их поведение более предсказуемое и более гибкое, чем у смешанных сборок, когда они используются в приложениях, содержащих CLR и изменяющих поведение по умолчанию.

Ограничения /clr:pure

В этом разделе рассматриваются возможности, не поддерживаемые в настоящее время /clr:pure.

*
Чистые сборки не могут быть вызваны неуправляемыми функциями. Поэтому чистые сборки не могут реализовывать интерфейсы COM или предоставлять собственные обратные вызовы. Чистые сборки не могут экспортировать функции посредством __declspec(dllexport) или DEF-файлов. Также, функции, объявленные с соглашением __clrcall, не могут быть импортированы посредством __declspec(dllimport). Функции в модуле машинного кода могут быть вызваны из чистой сборки, но чистые сборки не могут предоставлять функции, вызываемые неуправляемыми функциями, поэтому функции предоставления в чистых сборках должны быть обеспеченны посредством управляемых функций в смешанной сборке. Дополнительные сведения см. в разделе Практическое руководство. Миграция в /clr:pure.
*
Библиотеки ATL и MFC не поддерживаются компилированием в чистом режиме в Visual C++ 2005.
*
Чистые файлы NETMODULE не могут использоваться в качестве входных файлов компоновщика Visual C++. Однако, чистые OBJ-файлы принимаются компоновщиком и содержат надмножество сведений, содержащихся в файлах NETMODULE. Дополнительные сведения см. в разделе .NETMODULE-файлы в качестве входных файлов компоновщика.
*
COM-поддержка компилятора (#import) не поддерживается, поскольку это может ввести в чистую сборку неуправляемые инструкции.
*
Параметры с плавающей запятой для выравнивания и обработки исключений для чистых сборок не являются регулируемыми. В результате этого невозможно использовать __declspec(align). В результате создаются некоторые файлы заголовка, такие как fpieee.h, которые несовместимы с /clr:pure.
*
Функция GetLastError из пакета PSDK может вести себя непредсказуемым образом при компилировании с помощью /clr:pure.
короче говоря, либо MFC, либо "чистая" сборка.
линковщик не в состоянии выполнить твои требования.
отключи "чистую" сборку в параметрах.
1
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 7
05.11.2009, 22:45  [ТС]
осталось только отключить "чистую сборку", но проблема только - как?
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
06.11.2009, 05:31
пощелкать по строкам в параметрах проекта.
в Студии 2008 любая строка, влияющая на параметры компилятора, или линковщика имеет подсказку, либо в той-же строке, либо внизу радела.
можно посмотреть все параметры командной строки, получаемой компилятором, ни раскапывая make-файлы.
...
минуты потыкаться хватило:
раздел "Свойства конфигурации"-"Общие"-"Поддержка среды CLR"
нужно поставить в "Нет поддержки CLR-среды"
1
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 7
06.11.2009, 08:08  [ТС]
Получается так: MFC делаю статической, ставлю -нет поддержки CLR-среды.
В результате при билде выдаётся куча ошибок в файле Form1.h
А-а-а, помогите!
0
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 7
06.11.2009, 11:19  [ТС]
И ещё, почитав по форуму, решил сделать сборку в режиме Release (до этого собирал в Debug), появилась ошибка: error C2664: AddFontResourceW: невозможно преобразовать параметр 1 из 'const char [28]' в 'LPCWSTR' и точна такая же ошибка на CreateProcess?

Вообще программированием занимаюсь впервые (третий день) и вот думаю то ли такие проблемы от кривых рук и недостатка знаний, то ли основная сложность не в написании программ, а в их сборках перед отправкой в "жизнь"?
0
 Аватар для DrMcSheen
62 / 63 / 3
Регистрация: 25.05.2009
Сообщений: 520
06.11.2009, 13:15
Цитата Сообщение от Stepa Посмотреть сообщение
error C2664: AddFontResourceW: невозможно преобразовать параметр 1 из 'const char [28]' в 'LPCWSTR' и точна такая же ошибка на CreateProcess?
Забыл убрать галку поддержки юникода
1
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 7
07.11.2009, 13:53  [ТС]
Цитата Сообщение от DrMcSheen Посмотреть сообщение
Забыл убрать галку поддержки юникода
А где искть эту галку, всё что я нашёл про юникод, это: свойства проекта ->свойства конфигурации->C/C++ Использовать юникод файлы ответов, но это никак не повлияло на ошибку?
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
11.11.2009, 07:18
Лучше сделай новый проект приложения для Win32.
Выставляй параметры сразу при создании проекта.
Чтобы менять что-то "по ходу дела" надо разбираться в том что делаешь, на пальцах объяснять очень долго.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.11.2009, 07:18
Помогаю со студенческими работами здесь

CreateProcess не работает функция
Вот кусок кода который должен создавать файл f.bat типа "ipconfig > log.txt". Соответственно записывать результаты в log.txt и посылать их....

CreateProcess работает странно в D10
Существует программа, в которой основная невидимая программа-диспетчер поочередно запускает другие программы. В D3 и D7 все работало как...

CreateProcess
Такая трабла - человечек попросил сделать лабу - там процессы . начал искать решение - нашел вполне понятную функцию fork... но только она...

CreateProcess
Создать отдельный процесс, и осуществить в нем табулирования функции, заданную расписанию в ряд Тейлора, в области ее определения на...

CreateProcess
Ребята, подскажите как с помощью CreateProcess запустить 10 процессов (блокнот), один получается?


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru