Tecnicamente sarebbe meglio lasciare UNICODE abilitato e usare le stringhe di tipo Unicode all'interno del codice...
codice:
   	ShellExecute(NULL, L"Open", L"C:\\Memo-X\\Prova-1.exe", NULL, NULL, SW_SHOWNORMAL);
(il prefisso L indica una stringa Unicode, ovvero un array di wchar_t)