Man kann durchaus mit der system-Funktion arbeiten, auch wenn es eine unschöne Lösung ist...
Um Nightmares noch kurz über seinen Fehler auf zu klären:
system("string"); schickt den angegeben string zur commandline und macht prinzipiell das gleich wie folgende Batch-Datei:
string muss natürlich hierbei immer durch den eingegebenen String ersetzt werden. Gibst du nun den String "C:\\Program Files (x86)\\Emulatoren\\Nintendo DS\\DeSmuME.exe" im Programmcode an, so ist der eigentliche String C:\\Program Files (x86)\\Emulatoren\\Nintendo DS\\DeSmuME.exe, was cmd als rufe "C:\\Program Files" mit dem Parameter "(x86)\\Emulatoren\\Nintendo DS\\DeSmuME.exe" interpretiert. Damit es dennoch funktioniert, brauchst du in dem String noch mals Anführungszeichen, womit er dann so aussähe: "\"C:\\Program Files (x86)\\Emulatoren\\Nintendo DS\\DeSmuME.exe\""