Wie kann ich die STL in der WinAPI anwenden?
-
Hallo
Ich bin daran die STL kennen zu lernen. Doch jetzt habe ich ein Problem, denn in der Konsole geht es problemlos mit der STL. Doch in der WinAPI kommt immer der Fehler:
1>------ Erstellen gestartet: Projekt: test-vector, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>main.cpp 1>Verknüpfen... 1>main.obj : error LNK2001: Nicht aufgelöstes externes Symbol "__imp___CrtDbgReportW". 1>C:\Dokumente und Einstellungen\patrick\Eigene Dateien\Visual Studio 2008\Projects\test-vector\Debug\test-vector.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise. 1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\patrick\Eigene Dateien\Visual Studio 2008\Projects\test-vector\test-vector\Debug\BuildLog.htm" gespeichert. 1>test-vector - 2 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========Hier der Code in der WinAPI:
// main.cpp // #include<windows.h> #include<iostream> #include<vector> #include<string> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { std::vector<int> vec; vec.push_back(6); std::copy(vec.begin(), vec.end(), std::ostream_iterator<int> (std::cout, "\n")); return 0; }Weiss jemand was ich falsch gemacht habe?
Gruss Patrick
-
-
Danke, doch wie kann ich nun einen vector-inhalt in einer MessageBox ausgeben?
-
Eglifisch1 schrieb:
Danke, doch wie kann ich nun einen vector-inhalt in einer MessageBox ausgeben?
So zb.
std::vector<wchar_t> meinText; meinText.push_back(L"H"); meinText.push_back(L"a"); meinText.push_back(L"l"); meinText.push_back(L"l"); meinText.push_back(L"o"); MessageBox(NULL, &meinText[0], L"Mein Titel", MB_OK);
-
Warum treten nun diese Fehler auf, wenn ich genau dieses Beispiel von Icematix übernehme?
// main.cpp // #include<windows.h> #include<vector> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { std::vector<wchar_t> meinText; meinText.push_back(L"H"); meinText.push_back(L"a"); meinText.push_back(L"l"); meinText.push_back(L"l"); meinText.push_back(L"o"); MessageBox(NULL, &meinText[0], L"Mein Titel", MB_OK); return 0; }1>------ Erstellen gestartet: Projekt: test-vector, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>main.cpp 1>c:\dokumente und einstellungen\patrick\eigene dateien\visual studio 2008\projects\test-vector\test-vector\main.cpp(13) : error C2664: 'std::vector<_Ty>::push_back': Konvertierung des Parameters 1 von 'const wchar_t [2]' in 'const wchar_t &' nicht möglich 1> with 1> [ 1> _Ty=wchar_t 1> ] 1> Ursache: Konvertierung von 'const wchar_t [2]' in 'const wchar_t' nicht möglich 1> Es gibt keinen Kontext, in dem diese Konvertierung möglich ist 1>c:\dokumente und einstellungen\patrick\eigene dateien\visual studio 2008\projects\test-vector\test-vector\main.cpp(14) : error C2664: 'std::vector<_Ty>::push_back': Konvertierung des Parameters 1 von 'const wchar_t [2]' in 'const wchar_t &' nicht möglich 1> with 1> [ 1> _Ty=wchar_t 1> ] 1> Ursache: Konvertierung von 'const wchar_t [2]' in 'const wchar_t' nicht möglich 1> Es gibt keinen Kontext, in dem diese Konvertierung möglich ist 1>c:\dokumente und einstellungen\patrick\eigene dateien\visual studio 2008\projects\test-vector\test-vector\main.cpp(15) : error C2664: 'std::vector<_Ty>::push_back': Konvertierung des Parameters 1 von 'const wchar_t [2]' in 'const wchar_t &' nicht möglich 1> with 1> [ 1> _Ty=wchar_t 1> ] 1> Ursache: Konvertierung von 'const wchar_t [2]' in 'const wchar_t' nicht möglich 1> Es gibt keinen Kontext, in dem diese Konvertierung möglich ist 1>c:\dokumente und einstellungen\patrick\eigene dateien\visual studio 2008\projects\test-vector\test-vector\main.cpp(16) : error C2664: 'std::vector<_Ty>::push_back': Konvertierung des Parameters 1 von 'const wchar_t [2]' in 'const wchar_t &' nicht möglich 1> with 1> [ 1> _Ty=wchar_t 1> ] 1> Ursache: Konvertierung von 'const wchar_t [2]' in 'const wchar_t' nicht möglich 1> Es gibt keinen Kontext, in dem diese Konvertierung möglich ist 1>c:\dokumente und einstellungen\patrick\eigene dateien\visual studio 2008\projects\test-vector\test-vector\main.cpp(17) : error C2664: 'std::vector<_Ty>::push_back': Konvertierung des Parameters 1 von 'const wchar_t [2]' in 'const wchar_t &' nicht möglich 1> with 1> [ 1> _Ty=wchar_t 1> ] 1> Ursache: Konvertierung von 'const wchar_t [2]' in 'const wchar_t' nicht möglich 1> Es gibt keinen Kontext, in dem diese Konvertierung möglich ist 1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\patrick\Eigene Dateien\Visual Studio 2008\Projects\test-vector\test-vector\Debug\BuildLog.htm" gespeichert. 1>test-vector - 5 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========Kann mir jemand helfen?
-
'H'
-
volkard schrieb:
'H'
Oh ja, sorry.
Letzten 2 Tage nur in Lua geschrieben, da verliert man das Gefühl für Feinheiten ^^
-
Aber wie kann ich das nun mit einem vector<string> machen?
Wenn ich es genau gleich mache gibt es Fehler.
-
Ach Pätrick...
Vermutlich http://www.cplusplus.com/reference/string/string/c_str/
Aber zeig doch mal Code...