Witam! Mam do was pytanie, a mianowicie jak można skopiować dany program, który jest w tej chwili wykonywany? Tzn. program kopiuje samego siebie do danego folderu, lecz nie zna on swojego położenia. Myślę, że CopyFileA odpada. Dziękuję za jakąkolwiek pomoc :).
Na Windowsie do pobrania nazwy swojego exeka możesz użyć GetModuleFileName, podając NULL jako hModule.
TCHAR name[MAX_PATH+1];
GetModuleFileName(NULL, name, MAX_PATH+1);
Jak program może nie znać swojego położenia, przecież wszystko co wykonasz na ścieżkach relatywnych wykonasz w ramach katalogu w którym znajduje się uruchomiony program. Wystarczy pobrać nazwę programu, która jest pierwszym elementem w tablicy przekazanej do main jako drugi argument.
Dziękuję Rolek0, działa :).
Katalog bierzący a katalog, z którego została uruchomiona aplikacja, to dwie różne rzeczy; to, że zwykle wskazują na ten sam katalog nie ma nic do rzeczy; proces może sobie zmieniać swój katalog bierzący.