Witam,

mam pewna funkcje, ktora tworzy foldery, a w nich pliki z zawartoscia ktora jest kopiowana z katalogu glownego programu. W debugu i release wszystko chodzi poprawnie, jednak podczas dzalania wlasciwego programu wyswietla blad, ze "z instrukcji pod adresem 0x....nie moze odczytac danych"
Pojedyncze wywolanie dziala, jednak przy drugim jest cos nie tak. Sadze, ze cos ze zmiennymi jest nie tak.

ponizej kod funkcji, ktora jest wywolywana:

void saveFilePLOT(string Type,int number,string pathOutFile)
{
/*Ordnerwiederaufbau
IN:
	string Type:	Type für gebauten Folder (CLT, DIS, PZD..)
	int number:		diese Variable bestimmt eine Type der Eingangsdatei
	string pathOutfile	eine Pfad, wo die Ordner gebaut sollen sein
*/

/*===============VARIABLE===============*/
string pathTemp=pathOutFile;	//c:\\new\koder.exe
string pathDIS="";
string purePath="";				//c:\\new
string fileName="";				//koder

/*=================CODE=================*/
/*Die Bestimmung des Pfads und fileName*/
/*Die Schleife sucht von der Ende der String "pathOutFile" eine Anzeichen "\"*/
for (long i=pathTemp.length()-1;i>=2;i--)
{
	string tempStr=	pathTemp.substr(i,1);
	if (tempStr=="\\")		//Wahre, wenn das gelesende Anzeichen  mit "\" gleich ist
	{	
		/*Bestimmung der Name der Datei*/
		fileName=	pathTemp.substr(i+1,pathTemp.length()-5-i);
		/*Bestimmung der Ordner-Pfad*/
		purePath=	pathTemp.substr(0,i+1);
		//pathCTL=pathCTL.substr(0,i+1)+"\CTL";
		break;
	}
}
if(number==4)				//CTL-Ordner
{
	string type="CLT";		//hier "CTL"
	string path=purePath+"\\CTL";

	/*eine Prüfund, ob der gezeigte Ordner schon existiert*/
	DWORD returnValue=GetFileAttributes(LPCWSTR(path.c_str()));
		if(returnValue == ((DWORD)-1))//Wahr, wenn es kein Ordner gibt
		{
			mkdir(path.c_str());//neuer Ordner
		}
	path=path+"\\"+fileName+"."+type;

	ofstream file(path.c_str());		/*Offnung einer Datei, die es unter pathOutFile gibt
												Zeiger der Datei ist fileOutXML*/
	ifstream fileSource("..\\Release\\file.CTL");
	string	buff="";
	/*In Programm werden zwei Dateien geöffnet, eine mit Vorbildinhalt und zweite, wo die alle Zeile kopiert werden*/
	if (fileSource.is_open())
	{
		cout<<"OPEN the file "+type+"-Source to READ"<<endl;
		if (file.is_open())							//Wenn wurde ein File erfolgreich geöffnet
			{
				cout<<"OPEN the file "+type+" to SAVE"<<endl;
				do
				{
					getline(fileSource,buff);
					file<<buff<<endl;
					buff="";
				}while (!fileSource.eof());
				file.close();									//Abschluss der Datei fileOutXML
			}
		else cout<<"file "+type+" isn't OPEN to SAVE"<<endl;//Wenn  die Dateigeöffnung misslungen ist, wird ein Text gezeigt
		fileSource.close();
	}
}
if ((number==1)||(number==2)||(number==3))
{
	string type=Type;
	string path=purePath+"\\PLOT";
	DWORD returnValue=GetFileAttributes(LPCWSTR(path.c_str()));
		if(returnValue == ((DWORD)-1))
		{
			mkdir(path.c_str());
		}
	path=path+"\\"+fileName+"."+type;
	ofstream file(path.c_str());		/*Offnung einer Datei, die es unter pathOutFile gibt
												Zeiger der Datei ist fileOutXML*/
	ifstream fileSource;
	if (number==1)			fileSource.open("..\\Release\\file.PFD");
	else if (number==2)	fileSource.open("..\\Release\\file.PLO");
	else if (number==3)	fileSource.open("..\\Release\\file.PZD");
	string buff="";
	/*In Programm werden zwei Dateien geöffnet, eine mit Vorbildinhalt und zweite, wo die alle Zeile kopiert werden*/
	if (fileSource.is_open())
	{
		cout<<"OPEN the file "+type+"-Source to READ"<<endl;
		if (file.is_open())							//Wenn wurde ein File erfolgreich geöffnet
			{
				cout<<"OPEN the file "+type+" to SAVE"<<endl;
				do
				{
					getline(fileSource,buff);
					file<<buff<<endl;
					buff="";
				}while (!fileSource.eof());
				file.close();									//Abschluss der Datei fileOutXML
			}
		else cout<<"file "+type+" isn't OPEN to SAVE"<<endl;//Wenn  die Dateigeöffnung misslungen ist, wird ein Text gezeigt
		fileSource.close();
	}
	else cout<<"file "+type+"-Source isn't OPEN to READ"<<endl;
}
if (number==5)
{
	string type=Type;
	string path=purePath+"\\DIS";

	DWORD returnValue=GetFileAttributes(LPCWSTR(path.c_str()));
		if(returnValue == ((DWORD)-1))
		{
			mkdir(path.c_str());
		}

	path=path+"\\"+fileName+"."+type;
	ofstream file(path.c_str());		/*Offnung einer Datei, die es unter pathOutFile gibt
												Zeiger der Datei ist fileOutXML*/
	ifstream fileSource("..\\Release\\file.DIS");
	string buff="";
	/*In Programm werden zwei Dateien geöffnet, eine mit Vorbildinhalt und zweite, wo die alle Zeile kopiert werden*/
	if (fileSource.is_open())
	{
		cout<<"OPEN the file "+type+"-Source to READ"<<endl;
		if (file.is_open())							//Wenn wurde ein File erfolgreich geöffnet
			{
				cout<<"OPEN the file "+type+" to SAVE"<<endl;
				do
				{
					getline(fileSource,buff);
					file<<buff<<endl;
					buff="";
				}while (!fileSource.eof());
				file.close();									//Abschluss der Datei fileOutXML
			}
		else cout<<"file "+type+" isn't OPEN to SAVE"<<endl;//Wenn  die Dateigeöffnung misslungen ist, wird ein Text gezeigt
		fileSource.close();
	}
	}
}

po analizie zauwazylem, ze blad wystepuje w

    DWORD returnValue=GetFileAttributes(LPCWSTR(path.c_str()));
                if(returnValue == ((DWORD)-1))//Wahr, wenn es kein Ordner gibt
                {
                        mkdir(path.c_str());//neuer Ordner
                }

wiec teraz ta funkcje musze poprawic... :)