Hola,
En Delphi usaríamos algo como "PChar(Edit.Text)", porque lo que se nos pide en "ShellExecute()" es algo así, y no un "String". En C++ Debe haber alguna manera de hacer lo mismo, tal vez "(char)Edit.Text"... de hecho no es esta la forma, pero,
en este hilo parece que tienes la respuesta que buscas, me parece a mí: se titula igual que este tuyo...