#include <cstdlib>
#include <iostream>
#include<string.h>

using namespace std;

int main(int argc, char *argv[])
{
    
    string a;
    
    a="Dism /Online /Add-Package /PackagePath:";
    a+=argv[0];//dodaje sciezke do pliku lp.cab
    a.erase(a.length()-15,a.length()-1);//kasuje ze sciezki "spolszczenie.exe"
    a+="lp.cab";//dodaje do sciezki nazwe pliku
    
    system(a.c_str());
    cout<<endl<<a<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}

Program ma uruchamiać w odpowiedni sposob plik lp.cab znajdujacy sie w tym samym folderze.
Zasada jest taka, by zasymulowac wpisanie w konsoli polecenia "Dism /Online /Add-Package /PackagePath\Dev-Cpp\lp.cab"
Jeśli wpiszę to ręcznie w wierszu polecenia to jest ok, ale używając programu wyskakuje w konsoli błąd:

Wersja narzędzia do obsługi obrazu wdrażania
i zarządzania nim: 6.1.7600.16385


Błąd: 11

32-bitowa wersja narzędzia DISM nie umożliwia obsługi 64-bitowego systemu operac
yjnego.
Uruchom wersję odpowiednią dla architektury danego komputera.

Plik dziennika narzędzia DISM można znaleźć w folderze C:\Windows\Logs\DISM\dism
.log

Dism /Online /Add-Package /PackagePath:C:\Dev-Cpp\lp.cab
Aby kontynuować, naciśnij dowolny klawisz . . .

Wnioskuję, że konsola uruchomiona przez mój program różni się od tej, którą uruchamiam poprzez uruchom->cmd. Posiadam system Windows 7 64 bit. Czy ktoś wie jak sobie poradzić z tym problemem?