Entwickler-Ecke
Alle Sprachen - Alle Plattformen - VS 2008/2010 unter Windows 10 ?
georgeboy - So 19.09.21 08:34
Titel: VS 2008/2010 unter Windows 10 ?
Hallo zusammen, ich möchte wissen ob Visual Studio 2008 Standard, und Visual Studio 2010 Professional, unter Windows 10 läuft. Ein C++ MFC Programm von mir lässt sich unter VS 2019 zwar compilieren, stürzt aber nach dem Starten ab. Bei VS 2008 Standard läuft es.
Th69 - So 19.09.21 09:29
Ja, sie sollten auch unter Windows 10 laufen.
Aber möchtest du nicht den Fehler beheben? Was zeigt denn der Debugger an?
georgeboy - So 19.09.21 12:47
Die Fehlermeldung liefere ich noch nach, im folgenden der Code:
C++-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| file2 = fopen(DateiName,"r"); if ( file2 == NULL ) { file = fopen(DateiName, "w"); if ( file == NULL ) { AfxMessageBox("Fehler: Bei Dateien.txt: " + DateiName + " falsches Verzeichnis !"); LPO.LiParseCloseDateien(); return true; }; fprintf(file, "Neue Datei"); fclose(file); } else fclose(file2);
OpenDocumentFile(DateiName); |
Vielleicht sollte ich eine verbesserte Version von "fopen" verwenden.
georgeboy - Mo 20.09.21 07:35
Ich habe schon vieles versucht, das Problem mit OpenDocumentFile wird auch im Internet beschrieben. Mein MFC Programm pflege ich mit VS 2008/2010 weiter, alles andere mit C# .NET. Danke Dir !
Th69 - Mo 20.09.21 09:30
Welchen Fehler denn und kannst du den Link mal angeben?
Ralf Jansen - Mo 20.09.21 14:20
Da geht es darum das in der Debug Variante der Runtime Assertions fliegen wenn man die Runtime nicht richtig initialisiert.
Das finde ich vollkommen korrekt. Wenn das mit einer älteren Runtime nicht knallt hatte eher die alte Runtime einen Fehler als die aktuellere Version.
Wenn das vergleichbar ist mit deiner Situation, passiert dir das auch mit der deploybaren echten Runtime?
Und 2.ten wenn das vergleichbar ist mit deiner Situation warum initialisierst du die Runtime nun dann nicht einfach richtig?
georgeboy - Mo 20.09.21 14:43
Darf ich als nicht Profi, ( ohne mich zu blamieren ) fragen, was das heisst, und wie man es macht, eine Runtime initialisieren ?
Ralf Jansen - Mo 20.09.21 14:56
Fragen stellen ist der Sinn dieses Forums ;)
Wie genau die Runtime vorbereitet werden muss sollte die Doku der entsprechenden Klasse/Methode dir sagen. Sozusagen die Vorbedingungen nennen bevor etwas benutzt werden kann.
Aus dem von dir verlinkten Forenbeitrag entnehme ich das die von die benutzte Klasse aus der OLE/COM Ecke stammt und daher das COM Subsystem von Windows initialisiert werden muss.
Das macht man per Aufruf der
CoInitialize (bzw. am Ende per
CoUnitialize) API.
Dem Forenbeitrag entnehme ich aber auch das das scheinbar in MFC durch
afxOleInit() gekapselt ist und man diese am Anfang aufrufen sollte.
Wenn du diese Anwendung in irgendeiner alten Visual Studio Version angefangen hast wäre es möglicherweise hilfreich einfach mal in Visual Studio 2019 eine neue leere MFC App anzulegen und denn generierten Start/Initialisierungscode zu vergleichen was sich mittlerweile alles geändert hat und das passend in der eigentlichen Applikation nachziehen. Dann weißt du zumindest auch wo sich die Autoren der MFC gedacht haben von wo man das entsprechende aufrufen sollte.
Moderiert von Th69: Code-Tags hinzugefügt
georgeboy - Mo 20.09.21 16:37
Ich weiss nicht, wo ich
AfxOleInit() hinschreiben soll, an verschiedenen Stellen in
InitInstance, hängt das Programm.
Moderiert von Th69: Code-Tags hinzugefügt
Th69 - Mo 20.09.21 16:50
Hast du noch einen Aufruf von CoInitialize(NULL) drin?
Das beste wäre wohl, du setzt mal ein neues MFC-Testprojekt auf und testest ersteinmal die Grundfunktionalität von OpenDocumentFile.
georgeboy - Mo 20.09.21 18:07
Ich habe die Migration nach VS2019, nochmal erstellt, und den Migrationstext genauer gelesen, diese Projekte ( bei mir C++ MFC von VS2008 ) werden nicht unterstützt. Bei einer Test-Neuanlage hat
OpenDocumentFile funktioniert. Aber
InitInstance sieht bei VS2019 vollkommen anders aus, da wären im ganzen Programm sehr viele Änderungen nötig. Gut dass VS2008 auch auf Windows 10 läuft. Jetzt habe ich Euch umsonst genervt. Sorry ...
Moderiert von Th69: Code-Tags hinzugefügt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!