我正在尝试使用CreateProcess()函数创建一个简单的应用程序控制器.程序接收程序的te路径,该路径将由套接字执行并将其存储到char []变量中,稍后它将变量发送给将执行它的函数.
我得到的错误是
Client: Received data is: C:\Windows\System32\calc.exe
Server: Bytes received: 30.
CreateProcess failed (123).
Run Code Online (Sandbox Code Playgroud)
(2)= ERROR_FILE_NOT_FOUND
我尝试使用doble slash(//)并收到错误(123)
Client: Received data is: C:\\Windows\\System32\\calc.exe
Server: Bytes received: 33.
CreateProcess failed (123).
Run Code Online (Sandbox Code Playgroud)
(123)= ERROR_INVALID_NAME
接收程序执行路径的函数:
bytesRecv = recv(m_socket, recvbuf, 200, 0);
if (bytesRecv == SOCKET_ERROR)
printf("Server: recv() error %ld.\n", WSAGetLastError());
else
{
printf("\nClient: Received data is: %s\n", recvbuf);
printf("Server: Bytes received: %ld.\n", bytesRecv );
NewProcess(1,LPWSTR(recvbuf)); // <---- Call to NewProcess function with path
}
Run Code Online (Sandbox Code Playgroud)
和启动过程的功能:
void NewProcess(int count,LPWSTR cmd)
{
LPTSTR …Run Code Online (Sandbox Code Playgroud)