Zmiana katalogu roboczego, gdzie jest kod

0

Istnieją 2 katalogi:

A - tam jest cały projekt VS 2010
B - tam jest kod .c i pliki z danymi

Zakładamy, że katalogi są nieznane, dlatego nie podajemy ścieżek ręcznie.

Projekt skompiluje się do katalogu A\Debug, a katalogiem roboczym będzie A. Program otwiera kilka plików z danymi za pomocą funkcji fopen() z katalogu B i tu zaczynają się schody, bo nie znamy dokładnej ścieżki. Wiemy, że tam znajdują się pliki źródłowe z kodem.

Przeniesienie całego projektu do katalogu B odpada. Folder jest współdzielony, a 2 pliki .ipch i .sdf zajmują ponad 70 MB, są usuwane i tworzone na nowo.

Jest kilka możliwości:

  1. Zmienić katalog roboczy - gdzie tego szukać?
  2. Każdorazowo kopiować plik wykonywalny do folderu B
  3. Wykryć ścieżkę, gdzie znajdują się pliki źródłowe z kodem

Wszystkie 3 sposoby są odpowiednie, tylko który możliwy do zastosowania w języku C i środowisku VS 2010?

0
  1. „każdorazowo”, czyli w miarę potrzeby, kopiować pliki z danymi do katalogu A.
0

Ad 1. Preferencje projektu, Debugging -> Working Directory
Ad 2. General -> Output Directory
Ad 3. Utworzyć za pomocą property sheet user macro, np. SourceDir i ręcznie zedytować plik z projektem ustawiając ścieżki do plików źródłowych w postaci "$(SourceDir)plik.cpp".
5. Skopiować plik z projektem do katalogu z kodem źródłowym. Dzięki temu plik z projektem również będzie współdzielony. Ustawić w nim output i intermediate directories na makra, które każdy użytkownik będzie sobie ustawiać sam. Położenie tych dużych plików z bazą intellisense też możesz zmienić: http://stackoverflow.com/questions/4315681/how-to-change-ipch-path-in-visual-studio-2010

0

Odpowiedź 4: więcej katalogów:

  • kody źródłowe (*.c)
  • pliki projektowe (sln, sdf)
  • pliki tymczasowe (obj)
  • pliki we/wy + EXE

To ostatnie ustawiasz w opcjach projektu w sekcjach "katalog roboczy" i "katalog wyjściowy" - patrz post Rev-a.
Resztę - ustawiasz lub nie w opcjach projektu.

Co to za pomysł żeby źródła trzymać razem z danymi?

Jeśli program ma działać tylko na jednym katalogu to w ogóle nie używasz w nim ścieżek - polegasz na katalogu roboczym i ew. ścieżkach podanych as-is w parametrach programu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1