Вам нужно будет сделать что-то вроде:
CreateProcess(L"C:\\identify.exe",csExecute.GetBuffer(),0,0,TRUE,
NORMAL_PRIORITY_CLASS|CREATE_NO_WINDOW,0,0,&sInfo,&pInfo);
CreateProcess()
по какой-то причине хочет записываемый буфер для параметра командной строки, поэтому неявное преобразование CString
в простой старый указатель не происходит (поскольку оно будет выполнять неявное преобразование только в случае указатель константы).
Если это не та проблема, с которой вы столкнулись, опубликуйте более подробную информацию об ошибке или неожиданном поведении, с которым вы столкнулись.
В качестве примера, следующее запускает небольшую утилиту, которая выводит заданную командную строку:
int main() {
CString csExecute = "some string data";
STARTUPINFO sInfo = {0};
sInfo.cb = sizeof(sInfo);
PROCESS_INFORMATION pInfo = {0};
CreateProcess(L"C:\\util\\echoargs.exe",csExecute.GetBuffer(),0,0,TRUE,
NORMAL_PRIORITY_CLASS,0,0,&sInfo,&pInfo);
return 0;
}