Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi, ich habe ein Projekt in Visual Studio 2005 konvertiert und kann es nicht kompelieren. In meinem Code tritt dabei folgendes Problem:

visual studio 2005\projects\bader\baderdlg.cpp(581) : error C2593: 'Operator !=' ist mehrdeutig

			if(g_csFiles[iCount] != NULL)

				{

				iCount++;

				}

			else

				{

				break;

				}
g_csFiles ist eine globale Variable in der Dateinamen gespeichert werden. Dann ist hier noch ein Fehler in der Datei cstring.h:
\microsoft visual studio 8\vc\atlmfc\include\cstringt.h(2498): kann 'bool ATL::CStringT<BaseType,StringTraits>::operator !=(const ATL::CStringT<BaseType,StringTraits> &,char) throw()' sein [bei der Verwendung der argumentbezogenen Suche gefunden] 1> with 1> [ 1> BaseType=char, 1> StringTraits=StrTraitMFC_DLL<char> 1> ]
microsoft visual studio 8\vc\atlmfc\include\cstringt.h(2395): oder "bool ATL::CStringT<BaseType,StringTraits>::operator !=(const ATL::CStringT<BaseType,StringTraits> &,const char *) throw()" [bei argumentbezogenem Lookup gefunden] 1> with 1> [ 1> BaseType=char, 1> StringTraits=StrTraitMFC_DLL<char> 1> ] 1> bei Anpassung der Argumentliste '(CString, int)'
	friend bool operator!=(

		__in const CStringT& str1, __in PCYSTR psz2 ) throw( ... )

	{

		CStringT str2( psz2, str1.GetManager() );


		return( str1 != str2 );

	}
	friend bool operator!=( __in const CStringT& str1, __in XCHAR ch2 ) throw()

	{

		return( (str1.GetLength() != 1) || (str1[0] != ch2) );

	}

Könnt Ihr mir helfen, dass ich das zum Laufen bekomme?

LG Filou

Geschrieben

Der obere erstellt eine Liste mit allen Dateien und Ordnern in einem Verzeichnis. Wenn der Wert NULL ist wird zur nächsten Datei gesprungen.

Der untere Teil ist nicht von mir sondern aus der cstringt.h. Muss wohl irgend so eine MFC Klasse sein. Keine ahnung was das macht.

Geschrieben
Sorry.. bin nicht so der Profi im Programmieren.

ich schau mal wie ichs anders machen kann...

Warum sagst du es denn nicht einfach? Ist der Code nicht von dir?

Der Compiler weiß nicht, was du mit dem Code meinst. Wir wissen es auch nicht. Wir können natürlich irgendeine Lösung vorschlagen, die die Unklarheiten für den Compiler ausräumt. Ob der Code dann aber das tut, was du willst, ist Glückssache.

Willst du prüfen, ob der String leer ist? Willst du prüfen, ob das erste Zeichen ein Nullzeichen ist? Oder etwas ganz anderes?

Geschrieben

Doch der Code is von mir. Das ist nur schon über 1 Jahr her und jetzt muss ich was abändern dran mit dem neuen VS2005. Daher muss ich es erstmal wieder lauffähig bekommen.

Also das ist so: ich habe dieses Array das mit Dateinamen gefüllt ist. Diese Dateien will ich löschen. Ich weiß vorher nicht wieviele datein da drin sind also will ich schauen wann das Array leer ist um mit dem Löschen aufhören zu können.

ich habe jetzt mal aus dem NULL ein "" gemacht. jetzt kann ich es kompilieren. Ob es jetzt auch tut was es soll muss ich gleich mal testen wenn das Programm läuft.

Mal noch eine andere Frage:

Ich habe unter VS6 ein kleines Fenster eingeblendet.



	//Bitte warten Dilaog einblenden

	hInst = GetModuleHandle(NULL);

	hWnd2 = CreateDialog(hInst, MAKEINTRESOURCE(IDD_LIZENZ), *this, NULL);

	AnimateWindow(hWnd2, 1000, AW_BLEND);


Jetzt ist es aber so, dass AnimateWindow nur noch 2 Parameter will. Das hWnd2 wird anscheinend an dieser Stelle nicht angegeben. Wie kann das dieses Fenster denn einblenden?

Geschrieben
Jetzt ist es aber so, dass AnimateWindow nur noch 2 Parameter will. Das hWnd2 wird anscheinend an dieser Stelle nicht angegeben. Wie kann das dieses Fenster denn einblenden?
Die Version mit den 2 Parametern ist CWnd::AnimateWindow. Das Fenster wird da über den this-Zeiger des benutzten Objekts bestimmt. Diese Methode verdeckt die globale AnimateWindow-Funktion, weil dieser Code in einer Methode einer von CWnd abgeleiteten Klasse steht.

Wenn du auf die globale Funktion zugreifen willst, setz einfach zwei Doppelpunkte vor den Namen:

::AnimateWindow(hWnd2, 1000, AW_BLEND);

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...