Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: Compiler- und IDE-Forum ::  Probleme die exe des Professors auszuführen oder das Projekt zu compilen     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
Enomine
Mitglied

Benutzerprofil
Anmeldungsdatum: 19.01.2018
Beiträge: 28
Beitrag Enomine Mitglied 18:39:58 19.01.2018   Titel:   Probleme die exe des Professors auszuführen oder das Projekt zu compilen            Zitieren

Hi,

Zitat:
Für diese wie für viele der folgenden Aufgaben benötigen Sie das DirectX SDK. Es handelt sich hierbei um das Standard SDK für die PC Spieleprogrammierung. Sie können es sich von der Microsoft Seite herunterladen wenn Sie es nicht besitzen.


Dies erklärt der Professor vor der zweiten Übung in der Aufgabenstellung.

Ich habe DXSDK_Jun10.exe installiert und besitze Visual Studio 2017.

Beim start seiner mitgelieferten Lösungs-exe erscheint die Meldung:

Zitat:
Das Programm kann nicht gestartet werden, da MSVCR100D.dll auf dem Computer fehlt. Installieren Sie das Programm erneut, um das Problem zu beheben.


Ich habe die DLL von https://www.dll-files.com/msvcr100.dll.html heruntergeladen und in system32 und syswow64 kopiert. Die Dateien waren schon vorhanden. Ich habe die alten umbenannt.

Wenn ich das mitgelieferte Projekt in Visual Studio 2017 öffne und compile dann erscheint:

Zitat:
1>------ Erstellen gestartet: Projekt: CircleIntersect, Konfiguration: Debug Win32 ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Platform.targets(55,5): error MSB8020: Die Buildtools für Visual Studio 2010 (Plattformtoolset = "v100") wurden nicht gefunden. Installieren Sie zum Erstellen mithilfe der v100-Buildtools die Visual Studio 2010-Buildtools. Alternativ können Sie ein Upgrade auf die aktuellen Visual Studio-Tools durchführen, indem Sie das Menü "Projekt" auswählen oder mit der rechten Maustaste auf die Projektmappe klicken und dann "Projektmappe neu zuweisen" auswählen.
1>Die Erstellung des Projekts "CircleIntersect.vcxproj" ist abgeschlossen -- FEHLER.
========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 0 aktuell, 0 übersprungen ==========


Was ist das Problem? Was muss ich tun?

Danke - Enomine


Zuletzt bearbeitet von Enomine am 18:40:57 19.01.2018, insgesamt 1-mal bearbeitet
Th69
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.03.2008
Beiträge: 4946
Beitrag Th69 Mitglied 18:59:39 19.01.2018   Titel:              Zitieren

Das ist die falsche Version von der Anwendung. Dein Prof hat die Anwendung im Debug-Modus erstellt (und die dafür benötigen DLLs - sieht man am 'D' im Namen - dürfen nicht verteilt werden).

Die "MSVCR100D.dll" sowie das Projekt gehört zu Visual Studio 2010, wie man auch an der Fehlermeldung sieht.

Hast du schon
Zitat:
...oder mit der rechten Maustaste auf die Projektmappe klicken und dann "Projektmappe neu zuweisen" auswählen.
versucht?


Zuletzt bearbeitet von Th69 am 19:00:17 19.01.2018, insgesamt 1-mal bearbeitet
Enomine
Mitglied

Benutzerprofil
Anmeldungsdatum: 19.01.2018
Beiträge: 28
Beitrag Enomine Mitglied 19:07:00 19.01.2018   Titel:              Zitieren

Nach einfügen der richtigen DLL (also die mit D) funktioniert die exe-Datei des Professors.

Danke - Enomine
Enomine
Mitglied

Benutzerprofil
Anmeldungsdatum: 19.01.2018
Beiträge: 28
Beitrag Enomine Mitglied 19:10:32 19.01.2018   Titel:              Zitieren

Ich habe das Projekt auf die SDK-Version 10.0.15063.0 neu zugewiesen.
Dann lässt sich das Projekt nicht compilieren.
Es erscheinen 100 Warnungen, ich sehe keine Fehler, trotzdem sagt er nachher dass es fehlerhaft sei.

Aktuell bin ich mir unsicher, ob dies daran liegt, dass ich die Aufgabe noch nicht implementiert habe oder ob es jetzt schon zumindest compilierbar sein müsste.

EDIT: Hab jetzt doch einen error ("mehrdeutige Funktion") in der Mitte entdeckt.

Zitat:
1>------ Erstellen gestartet: Projekt: CircleIntersect, Konfiguration: Debug Win32 ------
1>PrimitivePainter.cpp
[...]
1>c:\users\enomine\downloads\spieleprogrammierung-dokumente\aufgabe2material\circleintersect\dxut\dxutenum.cpp(3976): error C2668: "abs": Mehrdeutiger Aufruf einer überladenen Funktion
1>c:\program files (x86)\windows kits\10\include\10.0.15063.0\ucrt\stdlib.h(363): note: kann "__int64 abs(const __int64) throw()" sein
1>c:\program files (x86)\windows kits\10\include\10.0.15063.0\ucrt\stdlib.h(358): note: oder "long abs(const long) throw()"
1>c:\program files (x86)\windows kits\10\include\10.0.15063.0\ucrt\stdlib.h(288): note: oder "int abs(int)"
1>c:\users\enomine\downloads\spieleprogrammierung-dokumente\aufgabe2material\circleintersect\dxut\dxutenum.cpp(3976): note: bei Anpassung der Argumentliste "(float)"
1>DXUT.cpp
[...]
1>Code wird generiert...
1>Die Erstellung des Projekts "CircleIntersect.vcxproj" ist abgeschlossen -- FEHLER.
========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 0 aktuell, 0 übersprungen ==========


EDIT: Ich habe diese Stelle mal nachgesehen. Die Datei hat 4000 Zeilen. Die wird wohl kaum von meinem Professor sein. Ich vermute eine mitgereichte Bibliothek.
Werden in VS2017 solche Sachen als Fehler markiert und in VS2010 noch nicht?


Was ist das Problem?

Betreffende Stelle:

C++:
                    float fCurRanking = abs( float( displayMode.RefreshRate.Numerator ) / fDenom1  -
                                             float( refreshRateMatch.Numerator ) / fDenom2 );


Danke - Enomine


Zuletzt bearbeitet von Enomine am 20:07:26 19.01.2018, insgesamt 6-mal bearbeitet
Enomine
Mitglied

Benutzerprofil
Anmeldungsdatum: 19.01.2018
Beiträge: 28
Beitrag Enomine Mitglied 19:32:51 19.01.2018   Titel:              Zitieren

Bitte verschieben nach C++. Das wusste ich noch nicht als ich den Thread erstellte.

Danke - Enomine
Enomine
Mitglied

Benutzerprofil
Anmeldungsdatum: 19.01.2018
Beiträge: 28
Beitrag Enomine Mitglied 19:46:58 19.01.2018   Titel:              Zitieren

Ich habe dieses Problem gelöst, indem ich in der entsprechenden Datei auf (long long) gecastet habe. Sogleich taucht das nächste Problem auf:

Zitat:
1>c:\users\enomine\downloads\spieleprogrammierung-dokumente\aufgabe2material\circleintersect\dxut\dxutenum.cpp(3976): warning C4244: "Initialisierung": Konvertierung von "__int64" in "float", möglicher Datenverlust
1>dxerr.lib(dxerrw.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__vsnwprintf" in Funktion ""long __stdcall StringVPrintfWorkerW(unsigned short *,unsigned int,unsigned int *,unsigned short const *,char *)" (?StringVPrintfWorkerW@@YGJPAGIPAIPBGPAD@Z)".
1>C:\Users\Enomine\Downloads\Spieleprogrammierung-Dokumente\Aufgabe2Material\CircleIntersect\Debug\CircleIntersect.exe : fatal error LNK1120: 1 nicht aufgelöste Externe
1>Die Erstellung des Projekts "CircleIntersect.vcxproj" ist abgeschlossen -- FEHLER.
========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 0 aktuell, 0 übersprungen ==========


Danke - Enomine
Swordfish
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.03.2005
Beiträge: 5833
Beitrag Swordfish Mitglied 20:58:07 19.01.2018   Titel:              Zitieren

https://social.msdn.micro ....... al-errors?forum=vcgeneral

_________________
To the journey! And to those of us who aren't here to celebrate it with us.
hustbaer
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.10.2006
Beiträge: 24114
Beitrag hustbaer Mitglied 22:17:55 19.01.2018   Titel:              Zitieren

1) Googeln nach StringVPrintfWorkerW ist bereits ausreichend um eine Erklärung zu finden wie man das Problem löst.
2) Ich rate dir ne englische Visual Studio Version zu verwenden. Die gibt dir dann englische Fehlermeldungen, und die lassen sich dann besser googeln. Ansonsten nimm statt der Fehlermeldung den Fehlercode, also in diesem Fall "LNK2019" - natürlich in Verbindung mit den "Daten" zu dem Fehler, also in diesem Fall dem Funktionsnamen "StringVPrintfWorkerW".

_________________
Until every person can enjoy all their human rights, we will not stop. I support Amnesty International. Will you?
https://www.amnesty.org / https://www.amnesty.de / https://www.amnesty.at
C++ Forumbot
Forumbot

Benutzerprofil
Anmeldungsdatum: 29.02.2004
Beiträge: 20532
Beitrag C++ Forumbot Forumbot 22:29:18 19.01.2018   Titel:              Zitieren

Dieser Thread wurde von Moderator/in SeppJ aus dem Forum Spiele-/Grafikprogrammierung in das Forum Compiler- und IDE-Forum verschoben.

Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?


Dieses Posting wurde automatisch erzeugt.

_________________
Besuchen Sie unsere Bücherecke.
http://www.c-plusplus.de/bucher.php
Mit jeder Bestellung unterstützen Sie das Forum.
Enomine
Mitglied

Benutzerprofil
Anmeldungsdatum: 19.01.2018
Beiträge: 28
Beitrag Enomine Mitglied 23:36:59 19.01.2018   Titel:              Zitieren

Dankeschön für die tolle Hilfe!
Korrekt war es "legacy_stdio_definitions.lib" in die Liste im Linker hinzuzufügen, wie von Swordfish verlinkt.

Danke - Enomine
C++ Forum :: Compiler- und IDE-Forum ::  Probleme die exe des Professors auszuführen oder das Projekt zu compilen   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.