У меня следующая проблема. Я использую DLL для добавления нового пункта меню для Списка элементов Today на PocketPC 2002. Я проверил написанную DLL на Windows Mobile 6.5.3 и он работает там.
На PocketPC путь содержит пробел, и я предполагаю, что я не экранирую строку правильно. Рассмотрим следующий фрагмент, где возникает проблема:
char commandline[100];
strcpy(commandline, "\\SDMMC Disk\\Test\\Test.exe");
STARTUPINFO si = { sizeof(si) };
int len;
int slength = (int)strlen(commandline) + 1;
len = MultiByteToWideChar(CP_ACP, 0, commandline, slength, 0, 0);
wchar_t* buf = new wchar_t[len];
MultiByteToWideChar(CP_ACP, 0, commandline, slength, buf, len);
PROCESS_INFORMATION pinfo;
::CreateProcess(buf, buf, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pinfo);
Теперь я пытался избежать пути к исполняемому файлу следующим образом:
strcpy(commandline, "\"\\SDMMC Disk\\Test\\Test.exe"");
Но, к сожалению, это не работает. Я сбежал из строки неправильно?
Буду признателен за любую помощь, спасибо.
Задача ещё не решена.