Si, perché la OpenDialog ti fa puntare la directory di lavoro, che inizialmente è quella dove si trova l'eseguibile, nella directory che selezioni, quindi dovresti salvarti come prima cosa il valore della directory corrente, poi utilizzarlo quando ti serve

codice:
char *store = new char[2048];
GetCurrentDirectory(2048, store);
strcat(store, "\\nomefile.ext");
Così poi quando scrivi nel file hai il percorso completo!