Это мой первый раз, и я хотел бы сделать параллельный процесс, используя функцию windows CreateProcess. На примере в MSDN я создал LPTSTR
"(non-const) TCHAR string"command line аргумент как этотошибка C3861: '_tcsdup': идентификатор не найден
LPTSTR szCmdline[] = _tcsdup(TEXT("\C:\\MyProgram_linux_1.1\\MyProgram.exe"));
The LPTSTR и другие char and string types are discussed here
аргумент командной строки передается CreateProcess
как этот
if (!CreateProcess(NULL, szCmdline, /*...*/)) cout << "ERROR: cannot start CreateProcess" << endl;
И эти заголовки присутствуют
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <strsafe.h>
#include <direct.h>
На компиляции это ошибка:
error C3861: '_tcsdup': identifier not found
Поиски этой ошибки найдены the same error but the solution was specific to using a .NET framework, а не объясняя error C3861: '_tcsdup'
Не уверен, что если он связан, но есть также error C2059: syntax error : ')'
на if (!CreateProcess(NULL, szCmdline, /*...*/)) cout << "ERROR: cannot start CreateProcess" << endl;
Как эта ошибка исправлена? И что с этим происходит?
Кроме того, я использую функцию CreateProcess
as a learning step towards learning the Linux fork()
- интерфейс Visual Studio проще для меня использовать, и как только это будет отлажена и работает, я изменю к интерфейсу г ++ и изменения в fork()
и отлаживать оттуда - так решение что приводит к fork()
, если это возможно, является наиболее выгодным.
Вы должны '#include' (или измените '_tcsdup' на' strdup' и перестаньте использовать макросы 'T'. –
Wow ... вы используете 'CreateProcess' для изучения' fork'? Почему бы просто не научиться «вилке»? Это совсем другие звери. – nneonneo
Единственное, что имеет «fork» и «CreateProcess», состоит в том, что они обе функции ... Трюки с помощью «CreateProcess» примерно так же помогут вам понять «fork», поскольку изучение французского языка, вероятно, поможет вам говорить по-японски , –