Te pongo un ejemplo en delphi. No debe ser mayor problema traducirlo a C++.
Código Delphi
[-]
procedure Backup(User, Password, Database, OutputDir: String);
var
OutputFile: String;
begin
OutputFile :=
IncludeTrailingPathDelimiter(OutputDir) +
Database + '_' + FormatDateTime('ddmmyy', Now) + '.sql';
ShellExecute(
0, 'open',
'C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump.exe',
PChar(Format('-u%s -p%s %s -r %s', [User, Password, Database, OutputFile])),
nil, SW_HIDE);
end;
Usas esta función pasando el usuario, contraseña, base de datos a respaldar y directorio donde colocar el respaldo. El archivo generado tendrá por nombre la base de datos seguida de la fecha, por ejemplo: test_130412.sql.
Desde luego, tienes que ajustar la ruta a mysqldump.exe tal como lo tengas en tu sistema.
// Saludos