Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Konvertierung VS6 -> VS2005

Empfohlene Antworten

Veröffentlicht

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

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.

Sorry.. bin nicht so der Profi im Programmieren.

ich schau mal wie ichs anders machen kann...

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?

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?

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);

Hat alles geklappt. Ich danke Dir!!!

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.