Я пытаюсь исправить программу, которая работает с другими программами, с помощью вызова createProces
.
Проблема в том, что я передаю объект класса Brick
в качестве параметра вызова createProcess
.
Я создаю объект (в основном) следующим образом:
char IpApplicationName[1000];
STARTUPINFO StartInfo;
PROCESS_INFORMATION ProcessInfo;
strcpy(IpApplicationName, "c:\\Documents and Settings\\Eigenaar\\Bureaublad\\BluetoothTestr\\recvProc\\bin\\Debug\\recvProc.exe");
//set up the NXT
Connection *connection = new Bluetooth();
Brick *nxt = new Brick(connection);
char *nxt_ptr = (char *)&nxt;
Затем я подключаюсь так (6
- это коммуникационный порт ключа Bluetooth):
connection->connect(6);
CreateProcess(IpApplicationName, nxt_ptr, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &StartInfo, &ProcessInfo);
Я думаю, что все работает нормально, но проблема в том, что я возвращаю char*
обратно к классу Brick
в процессе recvProc.exe
следующим образом:
Brick *nxt = (Brick*)argv[0];
Если я это прокомментирую, то программа работает нормально ... Что не так с этой строкой? Или мне нужно передать объект Connection в createProcess
?