8.3 Dos Konformität
-
danke soweit erstmal !!!!
bekomme aber diese fehlermeldung:
C2660: 'GetBuffer' : Funktion akzeptiert keine 0 Parameter
muss ich da noch parameter einfügen ? oder wieso akzeptiert er das nicht ??
danke dir
-
ein weiteres problem ist , dass wenn ich auf diese weise ordner anlege, nur halt cFileDir + cFileFName gespeichert werden. also
ich gehe in pfad C:\Test erstelle dort den ordner "Mike"dann wird mir in meinem pfad nur C:\Test angegeben und nicht C:\Test\Mike
da ich ja den kompletten pfad inkl dem neu erstellten ordner überprüfen muss.danke euch !!
-
So, nun hab ich den Überblick verloren?
Welche Variablen hast du, was steht drin?Poste mal den aktuellen Code und was laut Debugger jeweils in den Variablen steht.
-
void CBingenDlg::OnFileNewproject() { m_show_main = ""; CFileDialog fd(FALSE,"sdat", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Project Files (*.lu)|*.lu|||"); CString csLastDir; csLastDir = AfxGetApp()->GetProfileString( "LastSavedFile", "Directory", ""); if(csLastDir.GetLength()) { fd.m_ofn.lpstrInitialDir = csLastDir; ::SetCurrentDirectory(csLastDir); } if(fd.DoModal()==IDOK) { CString PathName = fd.GetPathName(); char cFileDrive[_MAX_DRIVE]; char cFileDir[_MAX_DIR]; char cFileFname[_MAX_FNAME]; char cFileExt[_MAX_EXT]; _splitpath(PathName, cFileDrive, cFileDir, cFileFname, cFileExt); char cPathName[_MAX_PATH]; sprintf(cPathName,"%s%s\0",cFileDrive, cFileDir); AfxGetApp()->WriteProfileString( "LastSavedFile", "Directory", cPathName); MessageBox("Bitte fügen Sie nach dem Erstellen des Projekts die Source-Dateien in den dafür vorgesehenen Ordner.","Source Files"); CString Pfad_drive = cFileDrive; CString Pfad_dir = cFileDir; CString f_Path = Pfad_drive+Pfad_dir; CString strKurzpfad; GetShortPathName(f_Path, strKurzpfad.GetBuffer(), MAX_PATH); if (f_Path != strKurzpfad) { AfxMessageBox(_T("Das ist kein DOS Pfad!")); } CreateDirectory(projektname,NULL); CString bin = projektname + "\\BIN"; CString link = projektname + "\\LINK"; CString obj = projektname + "\\OBJ"; CString source = projektname + "\\SOURCE"; CreateDirectory(bin,NULL); CreateDirectory(link,NULL); CreateDirectory(obj,NULL); CreateDirectory(source,NULL); } }so sieht der code aus. er kommt mit dem buffer aber nicht klar.
fehler :: lg.cpp(726) : error C2660: 'GetBuffer' : Funktion akzeptiert keine 0 Parameter
-
eig ist ja nur dieser abschnitt wichtig:
in f_Path steht z.B. "C:\Test\hans\bin\
CString strKurzpfad; GetShortPathName(f_Path, strKurzpfad.GetBuffer(), MAX_PATH); if (f_Path != strKurzpfad) { AfxMessageBox(_T("Das ist kein DOS Pfad!")); }und der getbuffer macht probleme.
-
Komisch, ich habe den Code so aus meinem Projekt rauskopiert, nichtmal die Variablennamen geändert.

Keine Ahnung, wieso das nicht geht, sorry.
-
hm.. wie könnte ich dem denn auf die schliche kommen ? was will getbuffer denn von mir ? und wieso bei dir nichts ?hast du das ganze irgendwie in einer schleife laufen ? oder sieht dein pfad anders aus ??
danke
-
geht es mit
strKurzpfad.GetBuffer(strKurzpfad.Getlength())auch nicht?
Tester2
-
neee... geht leider auch nicht. fehlermeldung:
error C2039: 'Getlength' : Ist kein Element von 'CString'
c:\programme\microsoft visual studio\vc98\mfc\include\afx.h(368) : Siehe Deklaration von 'CString'
-
habs so jetzt hinbekommen... es funktioniert.
danke euch !!CString strKurzpfad; GetShortPathName(f_Path, strKurzpfad.GetBufferSetLength(0), MAX_PATH); if (f_Path != strKurzpfad) { AfxMessageBox(_T("Das ist kein DOS Pfad!")); }
-
error C2039: 'Getlength' : Ist kein Element von 'CString'Sorry, Schreibfehler, muss heißen:
GetLength()Tester2