Visual Studio liefert Warnungen im Qt Code

Alles rund um die Programmierung mit Qt
Antworten
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Visual Studio liefert Warnungen im Qt Code

Beitrag von pospiech »

Ich habe Qt 4.3.4 aus den Quellen installiert und kompiliert.

Wenn ich nun ein Projekt kompiliere, dann bekomme ich die folgenden Warnungen im Qt Code
1>c:\programme\qt4\include\qtcore\../../src/corelib/thread/qmutex.h(122) : warning C4312: 'reinterpret_cast': Konvertierung von 'const quintptr' in größeren Typ 'QMutex *'
1>c:\programme\qt4\include\qtcore\../../src/corelib/thread/qreadwritelock.h(108) : warning C4312: 'reinterpret_cast': Konvertierung von 'const quintptr' in größeren Typ 'QReadWriteLock *'
1>c:\programme\qt4\include\qtcore\../../src/corelib/thread/qreadwritelock.h(151) : warning C4312: 'reinterpret_cast': Konvertierung von 'const quintptr' in größeren Typ 'QReadWriteLock *'
Was soll ich nun tun? Ignorieren, oder korrigieren. Wenn ja wie?

Matthias
ConfusedSushi
Beiträge: 57
Registriert: 18. Januar 2008 16:46
Wohnort: Berlin

Beitrag von ConfusedSushi »

die fehler treten auf wenn man die qt-header in ein project mit /W4 also warning-level 4 includiert.

du hast also drei möglichkeiten:

entweder die warnungen ignorieren (die schlechteste möglichkeit),

das warning-level auf 3 setzen,

oder gezielt diese warnungen abschalten ...

bei mir sieht das in etwa so aus:

Code: Alles auswählen


#pragma warning(push)
#pragma warning(disable: 4127 4311 4312 4512 6011)

#include <QtCore>
#include <QtGui>
#include <QtOpenGl>

#pragma warning(pop)

pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag von pospiech »

Wie ändere ich denn das Warning Level?
ConfusedSushi
Beiträge: 57
Registriert: 18. Januar 2008 16:46
Wohnort: Berlin

Beitrag von ConfusedSushi »

tut mir leid aber das muss an der stelle mal gesagt werden.

leute setzt ich mit den programmen/tools die ihr benutzt auch ein wenig auseinander

-> das is garantiert irgendwo in der hilfe zu finden

am einfachsten geht das in den projekt eigenschaften
dort unter

Configuration Properties -- C/C++ -- General -- Warning Level
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag von pospiech »

Danke, hatte es inzwischen auch gefunden. Allerdings nicht in der Hilfe, sondern in einem anderen Foreneintrag.

Das Level war alledings schon auf 3 eingestellt und eine Änderung zu 2 oder 1 hat an den Warnungen auch nichts geändert. Erst wenn ich die Warnungen ganz ausschalte sind sie offensichtlich weg.

Matthias
ConfusedSushi
Beiträge: 57
Registriert: 18. Januar 2008 16:46
Wohnort: Berlin

Beitrag von ConfusedSushi »

warnungen ganz ausstellen ist keine gute idee,
da empfehl ich dir eher meine lösung.

welches visual studio benutzt du?
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag von pospiech »

ConfusedSushi hat geschrieben:warnungen ganz ausstellen ist keine gute idee,
da empfehl ich dir eher meine lösung.

welches visual studio benutzt du?
Professional 2005
ConfusedSushi
Beiträge: 57
Registriert: 18. Januar 2008 16:46
Wohnort: Berlin

Beitrag von ConfusedSushi »

ich auch ...

warum das warning level runtersetzen nich funktioniert weiss ich dann nich,
bei mir funktioniert es

du kannst auch in den projekt eigenschaften gezielt warnungen ausschalten ...
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

quintptr
Integral type for representing a pointers (useful for hashing, etc.).

QMutex * ... ohne kommentar

den quintptr erkennt er als festen 32 bit typ, obwohl der von der QT sicher bei 64bit varianten umgetypdeft wird ...
Damit schlaegt von M$ der 64 Bit kompatiblitaetstest durch ...

welchen man wiederum ganz einfach aussschalten kann ueber ...

Project / Eigenschaften / C++ / Allgemein / Nach 64-Bit-Portablitaetsproblemen suchen -> da auf nein
oder allgemein aus der compilerschalterliste da das /w64 rausnehmen

Ciao ...
Antworten