#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:C:\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?