Seite 1 von 2

Problem bei CString zu verwenden

Verfasst: Mo Feb 24, 2014 3:17 pm
von Chunya
Guten Tag,

ich möchte so was in C++ Visual Studio 2012 benutzen.

Code: Alles auswählen

#include "stdafx.h"

#include <stdio.h>
//#include <afx.h>
#include <string.h>
#include <iostream>
#include "uEye.h"

using namespace std;

CString Str; 
  Str.Format("%02d.%02d.%04d, %02d:%02d:%02d:%03d",
   .....
  );
Dazu habe ich in Visual Studio eingestellt.
Properties - Konfigurationseigenschaften - Allgemein
Verwendung von MFC: MFC in einer gemeinsam genutzten Dll verwenden.

Nach kompilieren habe ich die Fehlermeldung bekommen:

Code: Alles auswählen

C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>
Dann habe ich in stdafx.h Datei "define _WIN32_WINNT " und "#include <afx.h>" hinzugeführt. Es sieht so aus:

Code: Alles auswählen

#define _WIN32_WINNT
#pragma once
#include <afx.h>
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
Nach der Kompilierung kommt aber noch eine Fehlermeldung vor:

Code: Alles auswählen

d:\programm\microsoft studio 2012\installation\vc\atlmfc\include\afxv_w32.h(35): fatal error C1017: Ungültiger Ausdruck für Ganzzahlkonstante
Könnte Jemand mir helfen? Vielen Dank.

Viele Grüße,
Chunya

Edit by cloidnerux: Code-Tags

Re: Problem bei CString zu verwenden

Verfasst: Mo Feb 24, 2014 3:28 pm
von cloidnerux
Guten Tag,
Hi und Willkommen im Forum :D
ich möchte so was in C++ Visual Studio 2012 benutzen.
Gibt es einen Grund, warum du "cstring" verwenden willst gegenüber der C++ string Klasse oder klassischen C-Strings?
Nach kompilieren habe ich die Fehlermeldung bekommen:

Code: Alles auswählen

C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>
Dein Compiler sagt hier mal ganz klar aus, dass du entweder die Windows-API nutzt oder MFC, von daher darfst du die windows.h nicht einbinden.

Zudem sieht das:

Code: Alles auswählen

#define _WIN32_WINNT
für mich falsch aus. Ich bezweifle, dass du noch irgendwas für Windows-NT machen willst?
Nach der Kompilierung kommt aber noch eine Fehlermeldung vor:

Code: Alles auswählen

d:\programm\microsoft studio 2012\installation\vc\atlmfc\include\afxv_w32.h(35): fatal error C1017: Ungültiger Ausdruck für Ganzzahlkonstante
sieht stark so aus, als wäre die Datei afxv_w32.h nicht für deinen Compiler geeignet: Hast du ein reines C++ Projekt, Win32 oder ein Visual-C++ Projekt(mit .NET Anbindung)?

Re: Problem bei CString zu verwenden

Verfasst: Mo Feb 24, 2014 4:13 pm
von Chunya
Hallo Cloidnerux,

ich glaube, dass ich ein Win32 Projekt habe.

Re: Problem bei CString zu verwenden

Verfasst: Mo Feb 24, 2014 4:16 pm
von Xin
Chunya hat geschrieben: Dann habe ich in stdafx.h Datei "define _WIN32_WINNT " und "#include <afx.h>" hinzugeführt.
Öhm... ich denke, der Compiler definiert sein System besser selbst?!

Re: Problem bei CString zu verwenden

Verfasst: Mo Feb 24, 2014 4:19 pm
von cloidnerux
ich glaube, dass ich ein Win32 Projekt habe.
Dann solltest du wrsl nicht MFC verwenden, oder wenn es MFC sein muss eine entsprechende Projektvorlage nehmen.

Wenn es nur um die Möglichkeit geht, Texte objektorierentiert zu verwenden, schau dir die C++ strings an(http://www.cplusplus.com/reference/string/string/)

Dann noch die generelle Frage: Muss es die Windows-API oder MFC sein, brauchst du das überhaupt? Oder würde ein einfach Terminal-Programm mit Standard C/C++ nicht auch reichen?

Re: Problem bei CString zu verwenden

Verfasst: Mo Feb 24, 2014 4:22 pm
von Chunya
Hallo Cloidnerux,

nein, muss es nicht so sein.
Ein einfach Terminal-Programm mit Standard C/C++ reicht es schon.

Viele Grüße,
Chunya

Re: Problem bei CString zu verwenden

Verfasst: Mo Feb 24, 2014 4:33 pm
von cloidnerux
Ein einfach Terminal-Programm mit Standard C/C++ reicht es schon.
Dann lass den ganzen Quatsch mit MFC und CString, leg ein neues Projekt an:
Datei->Neu->Projekt->Visual C++->Allgemein->Leeres Projekt
Füg eine Datei main.cpp hinzu und arbeite mit normalen C++ und der STL.
Oder orientiere dich an unserem C/C++ Tutorial: http://www.proggen.org/doku.php?id=c:start

Re: Problem bei CString zu verwenden

Verfasst: Mo Feb 24, 2014 4:33 pm
von cloidnerux
Ein einfach Terminal-Programm mit Standard C/C++ reicht es schon.
Dann lass den ganzen Quatsch mit MFC und CString, leg ein neues Projekt an:
Datei->Neu->Projekt->Visual C++->Allgemein->Leeres Projekt
Füg eine Datei main.cpp hinzu und arbeite mit normalen C++ und der STL.
Oder orientiere dich an unserem C/C++ Tutorial: http://www.proggen.org/doku.php?id=c:start

Re: Problem bei CString zu verwenden

Verfasst: Mo Feb 24, 2014 10:35 pm
von Chunya
Guten Tag,

meine Aufgabe ist eigentlich so, dass die Zeit und Datum zu zugreifen bzw. darstellen.
Es zeigt ein Beispiel mit CString str hier:

Code: Alles auswählen

 CString Str; //Zeitstemopel in Systemzeit auslesen
  Str.Format("%02d.%02d.%04d, %02d:%02d:%02d:%03d",
	                  ImageInfo.TimestampSystem.wDay,
			  ImageInfo.TimestampSystem.wMonth,
			  ImageInfo.TimestampSystem.wYear,
			  ImageInfo.TimestampSystem.wHour,
			  ImageInfo.TimestampSystem.wMinute,
			  ImageInfo.TimestampSystem.wSecond,
			  ImageInfo.TimestampSystem.wMilliseconds);
wobei ImageInfo.TimestampSystem.wDay/..../wMilliseconds sind von Type WORD.
Edit by cloidnerux: Code-Tags

As oberen genannt, gibt es auch eine Möglichkeit mit std::string statt CString zu verwenden. Könnte Jemand vielleicht eine Idee geben, wie kann ich das mit std::string realisieren?
Vielen Dank!

Viele Grüße,
Chunya

Re: Problem bei CString zu verwenden

Verfasst: Mo Feb 24, 2014 10:40 pm
von cloidnerux
meine Aufgabe ist eigentlich so, dass die Zeit und Datum zu zugreifen bzw. darstellen.
Es zeigt ein Beispiel mit CString str hier:
Den Einfachsten fall zeigt die Dokumentation zu den Datum und Uhrzeitfunktionen:
http://www.proggen.org/doku.php?id=c:lib:time:strftime
As oberen genannt, gibt es auch eine Möglichkeit mit std::string statt CString zu verwenden. Könnte Jemand vielleicht eine Idee geben, wie kann ich das mit std::string realisieren?
Vielen Dank!
Und nochmal eine generelle Frage: hast du von deinem Lehrer/Tutor die Aufgabe und Beispielcode bekommen, hast du nur die Aufgabe bekommen und den Code irgendwo gefunden oder in welchen Zusammenhang steht das ganze?
Auch kannst du dich gerne hier in der User-Vorstellung vorstellen, damit man weiß, mit wem man es zu tun hat :)