Error MFC shared dll version

Alles rund um die Programmierung mit Qt
Antworten
darkshine
Beiträge: 102
Registriert: 20. August 2010 11:39

Error MFC shared dll version

Beitrag von darkshine »

Guten Morgen Forum,

ich nutze Qt mit Visual Studio und es klappt auch alles sehr gut. Aus persönlichem Interesse wollte ich mein Projekt mit dem Qt-Creator ausführen. Da erscheint beim Kompilieren folgende Fehlermeldung

#error Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]

Ich möchte meinen Quellcode nicht ändern, weil es unter VS zuverlässig läuft. Aber kann ich bei QCreator etwas ändern damit ich es auch hier ausführen kann?

Vielen Dank
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Inkludierst Du irgendwo mfc header? Wenn ja - warum?Und wenn Du es wirklich benötigst dann definiere eben _AFXDLL so wie es in der Fehlermeldung steht.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
darkshine
Beiträge: 102
Registriert: 20. August 2010 11:39

Beitrag von darkshine »

Ich nuzte den MFC Header zum suchen der Com-Ports. Mir wird einmal angezeigt welche Ports überhaupt vorhanden sind und was für mich sehr wichtig ist, die Art der Com-Ports. Ich bekomme angezeigt ob es ein serieller Port oder ein virtueller serieller Port von Bluetooth Modulen ist.

Wie kann ich die _AFXDLL denn definieren?
darkshine
Beiträge: 102
Registriert: 20. August 2010 11:39

Beitrag von darkshine »

Wenn es eine Alternative gibt, die virtuelle Ports von Bluetooth-Modulen erkennen kann, dann wäre ich auch sehr dankbar dafür.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

darkshine hat geschrieben: Wie kann ich die _AFXDLL denn definieren?
http://doc.trolltech.com/4.6/qmake-vari ... ml#defines
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
darkshine
Beiträge: 102
Registriert: 20. August 2010 11:39

Beitrag von darkshine »

Ich habe jetzt einfach
DEFINES += _AFXDLL \
in meine .pro Datei in die erste Zeile geschrieben.

Jetzt kommen viele Fehlermeldungen, besonders oft über LPTSTR das nicht konvertiert werden kann. Diese Fehler treten aber nicht in "meinen" Files auf, sondern in verhandenen die in C:\Programme\Microsoft Visual Studio 9.0\VC\include stehen.

Wäre auch zu schön gewesen, wenn es mit einer kleinen Zeile getan wäre :(
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Entweder UNICODE ist definiert oder nicht (kann auch _UNICODE sein). Wie gesagt - warum MFC? Das Geht bestimmt auch einfach über die WinAPI.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
darkshine
Beiträge: 102
Registriert: 20. August 2010 11:39

Beitrag von darkshine »

Ich hatte zu begin auch die WinAPI genutzt. Aber die Möglichkeit die virtuellen Ports zu erkennen habe ich dort nicht gefunden.
Da ich alle Ports nach einen Gerät abfrage, brauche ich diese Möglichkeit der Filterung.
So kann ich über eine Auswahl die "Bluetooth-Ports" von der Abfrage ausschließen, wenn ich weiß das Gerät es nicht über Bluetooth angeschlossen ist. Da gerne 10 virtuelle Ports oder mehr erstellt werden, ist dies eine sehr nützliche Funktion.
Bietet denn Qt eine Möglichkeit vorhandene Ports zu erkennen (ohne Unterscheidung)?

Super es klappt soweit..jetzt sind es "nur" noch zwei Fehler weil "const unsigned short*" nicht in qlonglong kovertiert werden kann.
Antworten