Тема: CreateProcessA(). WIN API
Привіт усім, форумчани!
Останнім часом почав цікавитись WIN API (для загального розвитку ) .
Наразі почитав про FileMapping і приколи зв'язані з ним. Хотів спробувати реалізувати таке завдання: маємо файл(створений через CreateFile або ж відкритий ним же), записуємо туди якусь інформацію, створюємо FileMapping з якимось ім'ям і т.д.(це не суттєва частина - вона працює). Всі ці дії виконує перший процес. Другий же - відкриває, створений в першому процесі FileMapping , зчитує інформацію з того файлу і виводить на екран.
Так от , проблема в виклиці самого другого процесу. Не хоче працювати функція CreateProcessA(). Чому? Раніше, застосовуючи її аналогічним чином - все працювало корректно. Що не так? Підкажіть.
І ще одне , в MSDN error codes я прочитав , що error code 2 - це "FILE_NOT_FOUND". Але ж він існує!
Ось той кусочок коду:
STARTUPINFOA si = {sizeof(si)};
PROCESS_INFORMATION pi;
char cmdLn[BUFFER_SIZE];
sprintf(cmdLn, "%s %s ", "FileMapping_1_1",mapName); //mapName = "Mapping1" назва , яку дав при створенні
//назва того процесу (проекту) в точності до символа = "FileMapping_1_1"
puts("Press any key to run the second process");
_getch();
if (!CreateProcessA("FileMapping_1_1.exe", cmdLn, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
std::cout << "Failed to run second process. Error : " << GetLastError() << std::endl;
WaitForSingleObject(pi.hProcess, INFINITY);