El nombre del ejecutable lo puedes obtener de la línea de comandos:
-   
- int main( int argc, char* argv[] ) { 
-   for ( int i = 0; i < argc; i++ ) { 
-     cout << argv[ i ] << endl; 
-   } 
-   
-   return 0; 
- } 
-   
-   
En argv[ 0 ] siempre tienes la ruta completa del ejecutable, si sólo quieres el nombre del ejecutable recorrerías hacia atrás hasta encontrar el primer indicador de directorio/carpeta (\ en Windows, / en otros como Linux/Unix).
Si trabajas en Windows, la función GetCommandLine te devuelve la línea de comandos y de allí podrías extraer el nombre del ejecutable, aunque creo que debe existir una función en la API de Windows que ya haga lo que quieres 

.
Saludos,
JJ (Geo).