Zum Inhalt springen

wulfgang

Mitglieder
  • Gesamte Inhalte

    181
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von wulfgang

  1. Okay habe jetzt 1 zu 1 aus dem Fenster von vom Stack rauskopiert: Hilft das irgendwie?
  2. Ja. Debug > Windows > Call Stack geht bei mir nicht. Habe stattdessen als Optionen zur Auswahl: Debug > Windows > Immediate Debug > Windows > Breakpoints Debug > Windows > Output Bei alt+F7 erhalte ich vom Debugger ebenfalls nur die oben von mir zitierte Ausgabe.
  3. Wie soll ich mir denn den Callstack anzeigen lassen? Der Debugger wirft zum Schluss aus:
  4. Das Objekt session soll ja erst zum Ende des Programms zerstört werden. Gibt es denn keine Möglichkeit session so zu zerstören wie es jetzt ist?
  5. Das habe ich von MFC schon fertig übernommen. Weiß denn jemand wie ich das Objekt rechtzeitig zerstöre?
  6. Moin,ich bekomme von meinem Programm(Konsolenanwendung unter VisualStudio geschrieben), wenn ich das Programmfenster wieder schließen will, als erstes die Meldung: Das Problem ist ein CInternetSession Objekt. Bin leider noch nicht ganz dahintergekommen, wie ich den Fehler beseitige. Ich weiß, dass der Fehler nur auftaucht wenn ich CInternetSession session((_T("My FTP Session")),1, INTERNET_OPEN_TYPE_PROXY ,(_T( "proxy")), NULL, 0); außerhalb einer Methode erzeuge also z.B in einer Source: CInternetSession session((_T("My FTP Session")),1, INTERNET_OPEN_TYPE_PROXY , (_T( "proxy")), NULL, 0); Connect::Connect(void) {} Kommt der Fehler daher, dass ich session erst zerstören muss? Aber einfach nur delete(session) in der aufrufenden Umgebung funktioniert nicht. Session ist in der aufrufenden Umgebung nicht bekannt
  7. wulfgang

    global Vector

    Funktioniert jetzt! Was meinst du damit?
  8. wulfgang

    global Vector

    Klappt schon fast. Es kommen noch 2 Fehler. #pragma once #include <vector> #include <algorithm> using namespace std; class transfer_data { public: transfer_data(void); void exception_handling_Change_Directory(void); extern vector<string> dateinamen_xar; //beide Fehler beziehen sich //auf diese Zeile public: ~transfer_data(void); };
  9. Hallo, ich möchte gerne einen vector mit strings global für Methoden verschiedener Klassen verfügbar machen. Wie mache ich das?Ein kleines Beispiel, was in der Header-und was in der Sourcedatei steht, wäre hilfreich.
  10. Richtig, die Anweisung hoechstes_blatt++ fehlte noch. Hier ist zeichnungsnummern_xar ein Vector von strings. Die Schleife ist Teil einer Funktion, welche Dateien, die einen Index in ihrem Namen enthalten, nach dem Index ordnet.
  11. Das war der Fehler. :upps
  12. Ist die erste Fehlermeldung und ich habe sstream eingebunden. while (bWorking) { bWorking = finder.FindNextFile (); anzahl_dateien++; string s_dateiname; s_dateiname = finder.GetFileTitle(); zeichnungsnummern_xar.push_back(s_dateiname); cout << finder.GetFileTitle(); cout << " "<< s_dateiname.length() << "\n"; } cout << anzahl_dateien;//Anzahl der Blätter ermitteln int hoechstes_blatt=0; while(hoechstes_blatt<anzahl_dateien) istringstream converter((zeichnungsnummern_xar[2].substr(11,2))); converter >> hoechstes_blatt;
  13. Guten Morgen, ich versuche verzweifelt einen string in einen integer umzuwandeln. Erhalte als Fehlermeldung aber immer istringstream converter((zeichnungsnummern_xar[2].substr(11,2)));converter >> hoechstes_blatt; Wieso? converter ist doch deklariert.
  14. Hallo, ich stehe vor folgendem Problem. Ich habe Zeichenketten mit einem Index. Der Index besteht aus ein ODER zwei Buchstaben . Z.B 1234a12 oder aber 1234aa12. Die Zeichenketten sollen nach dem Index geordnet werden. a ist das niedrigste zz das höchste. Wie erkenne ich nun, ob an der entsprechenden Stelle ein Buchstabe oder eine Zahl vorliegt?
  15. Moin, habe es jetzt mit sort und einem Vektor realisiert. Wußte vorher gar nicht, dass es so etwas gibt. Ist ja echt praktisch der vector.
  16. Hallo, ich stehe vor folgendem Problem: 1)ich möchte mir alle Unterordner auslesen lassen 2)die Namen der Ordner sollen sortiert werden und in etwas wie ein Array zwischengespeichert werden um weiterverarbeitet zu werden. Auslesen kein Problem mit .GetFileTitle( ) . Aber dann, wie speichere ich die Strings am Besten? Wäre so was wie string arrayname[]. am Besten? Aber kann ich dann noch sort verwenden oder muss ich selber eine Sortierfunktion schreiben. Gibt es bessere Loesungen?
  17. Ist ja einfach, wenn man die Funktionkennt.
  18. Moin,ich versuche aus einem String bestimmte Zeichen wie das 2. , 3. und 4.Zeichen auszulesen. Funktioniert aber noch nicht ganz, bekomme nur ein falsches Zeichen durch cout. Gibt es da irgendeine Funktion, die mir das erleichtert? string s_unterordner; s = "T1234"; s_unterordner = s[1]+s[2]+s[3]; cout << s_unterordner;
  19. Habe jetzt auf ANSI umgestellt.Funktioniert!:uli Musste erst mal alle wchar_t umstellen.
  20. Nei eigentlich nicht. Ist es einfacher für mich, wenn ich ANSI benutze? Wo kann ich denn die Projekteinstellungen auf ANSI umstellen? Bin jetzt im PropertyManager->Configuration Properties und dann einfach überall wo Unicode YES vorkommt auf Unicode NO ändern?
  21. Moin, also bei cout << "Wechsel in das Verzeichnis erfolgreich\n"; string s_unterordner; s_unterordner = s[1] + s[2] + s[3]; cout << s_unterordner.length(); //MultiByteToWideChar(CP_THREAD_ACP, MB_COMPOSITE, s_unterordner, ... ); LPCTSTR unterordner; unterordner = s_unterordner.c_str(); if(connection_pointer->SetCurrentDirectory(unterordner)) erhalte ich Dann benötige ich wohl const wchar_t*? Aber MultiByteToWideChar wandelt doch in LPWSTR um? SétCurrentDirectory benötigt doch LPCTSTR? Oder meintest du dass ich mit MultiByteToWideChar erst in LPWSTR und dann mit c_str() in LPCTSTR umwandel?:confused:
  22. Hallo, ich möchte einen string in LPCTSTR konvertieren.Brauche es für den unten stehenden Code. SetCurrentDirectory will ja LPCTSTR. Gibt es da eine einfache Möglichkeit? string unterordner; unterordner = s[1] + s[2] + s[3]; if(connection_pointer->SetCurrentDirectory(unterordner))
  23. Hat Beziehung wäre wohl besser. Habe die Vererbung bei transfer_textfile jetzt rausgenommen. int _tmain(int argc, _TCHAR* argv[]) { int warte; Connect(); transfer_textfile(); delete_textfile(); cin >> warte; return 0; } delete.cpp habe ich jetzt auch geändert: delete_textfile::delete_textfile(void) { CFtpConnection* connection_pointer; connection_pointer=Connect::getLastConnection(); //Objekt der Klasse read_serverlist wird erzeugt read_serverlist LeseListe; //Textdatei wird gelöscht BOOL bWorking = connection_pointer->Remove (LeseListe.source_txt); if (bWorking) { cout << "Datei ist gelöscht worden"; } else { cout << GetLastError(); DWORD dwInfo = 0; TCHAR puffer[250] = _T(""); DWORD dwSize = sizeof(puffer) / sizeof(TCHAR); if( !InternetGetLastResponseInfo(&dwInfo, puffer, &dwSize) ) { cout << GetLastError(); cout << "Aufruf InternetGetLastResponseInfo nicht erfolgreich"; } //Fehlerbehandlung falls InternetGetLastResponseInfo nicht aufgerufen werden konnte else { wcout << puffer; cout << "Aufruf InternetGetLastResponseInfo erfolgreich"; } } Das Problem: Wenn ich in delete_textfile den Konstruktor von Connect nicht ausführe bekomme ich die Meldung dass das File nicht gefunden wurde. Rufe ich aber erst delete_textfile(); und dann transfer_textfile(); aus funktioniert es. Ich bin noch nicht dahintergekommen wieso.
  24. Ich habe in der Methode Connect eine Bildschirmausgabe mit eingebaut. Wenn ich nun transfer_textfile(); delete_textfile(); aufrufe erhalte ich zwei Bildschirmausgaben. Lag wohl daran dass transfer_textfile von Connect abgeleitet ist. delete_textfile.h class delete_textfile { public: delete_textfile(void); public: ~delete_textfile(void); }; delete_textfile.cpp delete_textfile::delete_textfile(void) { Connect(); CFtpConnection* connection_pointer; connection_pointer=Connect::getLastConnection(); //Objekt der Klasse read_serverlist wird erzeugt read_serverlist LeseListe; //Textdatei wird gelöscht BOOL bWorking = connection_pointer->Remove (LeseListe.source_txt); if (bWorking) { cout << "Datei ist gelöscht worden"; } else { cout << GetLastError(); } } in transfer_textfile.cpp transfer_textfile::transfer_textfile(void) { CFtpConnection* connection_pointer; read_serverlist LeseListe; connection_pointer=Connect::getLastConnection(); CFtpFileFind finder(connection_pointer); try { //Verzeichnis wird gewechselt if(connection_pointer->SetCurrentDirectory(_T("automatic/get_bu"))) { cout<<"Verzeichnis wurde mit Erfolg! gewechselt\n"; //Datei wird gesucht BOOL bWorking = finder.FindFile(_T("bu.txt")); if(bWorking) { //Datei wird vom Server auf lokale Festplatte transferriert BOOL bGot = connection_pointer->GetFile(_T("bu.txt"),LeseListe.destination_txt,FALSE); if (bGot) { cout << "Transfer sollte erfolgt sein\n"; } else { cout << GetLastError() << "\n"; } } else { cout << "The File specified could not be found.!"<<GetLastError(); } } else { DWORD dwInfo = 0; TCHAR puffer[250] = _T(""); DWORD dwSize = sizeof(puffer) / sizeof(TCHAR); if( !InternetGetLastResponseInfo(&dwInfo, puffer, &dwSize) ) { cout << GetLastError(); cout << "Aufruf InternetGetLastResponseInfo nicht erfolgreich"; else { wcout << puffer; cout << "Aufruf InternetGetLastResponseInfo erfolgreich"; } } } catch(CException* error) { TCHAR szCause[1024]; error->GetErrorMessage(szCause,1024); printf_s("ERROR! %S\n", szCause); error->Delete(); } } transfer_textfile.h class transfer_textfile : public Connect { public: transfer_textfile(void); public: ~transfer_textfile(void); }; Ich wollte in main.h eine Klasse Connect als Member erstellen, um dann darauf zugreifen zu können.
  25. Ich schreibe einen FTP-Clienten. Mit GetFtpConnection bekomme ich meinen Zeiger auf ein CInternetSession Objekt. Nun habe ich verschiedene Klassen zum Löschen, Runterladen, Hochladen...Bisher muss ich dann für jede dieser Funktionen/Klassen eine neue Verbindung aufbauen. Mein Ziel ist es, dass ich die Verbindung nur einmal aufbauen muss. Jetzt kann ich ja in einer anderen Klasse sagen connection_pointer=Connect::getLastConnection(); Dann wird bloß jedes mal die Verbindung wieder aufgebaut. Connect.cpp CFtpConnection* Connect::connection_pointer=NULL; CInternetSession session((_T("My FTP Session")),1, INTERNET_OPEN_TYPE_PROXY , (_T( "proxy")), NULL, 0); Connect::Connect(void) { //Objekt session wird erzeugt //Zeiger auf CFtpConnection CFtpConnection *connection; //Objekt der Klasse read_serverlist wird erzeugt read_serverlist LeseListe;CFtpConnection * if(connection = session.GetFtpConnection(pstrServer, LeseListe.servername, LeseListe.password, port, bPassive)) { cout << "Verbindung wurde aufgebaut\n"; connection_pointer=connection; } } Connect::getLastConnection() { return connection_pointer; } Connect.h class Connect : public read_serverlist { public: Connect(void); static CFtpConnection * Connect::getLastConnection(); static CFtpConnection *connection_pointer; void give_connection(void); public: ~Connect(void); };

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...