cout-problem



  • bei visual studio wird der code:

    #ifdef UNICODE
        std::wostream& tcout( std::wcout );
        std::wostream& tcerr( std::wcerr );
        std::wistream& tcin( std::wcin );
    

    etwas heller geschrieben. meine vermutung: er wird nicht kompiliert.

    ok hab ma charakterset auch multiple byte gesetzt aber es kommt immernoch der error:

    Compiling...
    COUT.cpp
    Linking...
    COUT.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<char,struct std::char_traits<char> >(class std::basic_ostream<char,struct std::char_traits<char> > &,char const *)" (__imp_???6DU??6DU?char_traits@D@std@@@std@@YAAAV?basic_ostream@DU?basic\_ostream@DU?char_traits@D@std@@@0@AAV10@PBD@Z) referenced in function _main
    C:\Dokumente und Einstellungen\Eigene Dateien\Visual Studio 2008\Projects\COUT\Debug\COUT.exe : fatal error LNK1120: 1 unresolved externals
    Build log was saved at "file://c:\Dokumente und Einstellungen\Eigene Dateien\Visual Studio 2008\Projects\COUT\COUT\Debug\BuildLog.htm"
    COUT - 2 error(s), 0 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

    hier nochma der code:

    #include <iostream>
    
    using namespace std;
    
    #ifdef UNICODE
        std::wostream& tcout( std::wcout );
        std::wostream& tcerr( std::wcerr );
        std::wistream& tcin( std::wcin );
    #else
        std::ostream& tcout( std::cout );
        std::ostream& tcerr( std::cerr );
        std::istream& tcin( std::cin );
    #endif
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	cout << "hi";
    	return 0;
    }
    

    stdafx.h :

    #pragma once
    
    #include "targetver.h"
    
    #include <stdio.h>
    #include <tchar.h>
    


  • Solltest du dann nicht auch tout in der main benutzen?



  • Naja, wenn UNICODE nicht definiert ist, müsst's eigentlich wurscht sein 😕
    Hau' den Code mal in ein neues Konsolenprojekt ohne vorkompilierte Header.

    cheers, Swordfish



  • joo hab ich , geht net

    also das tutorial von GameTutorials.com funktioniert auch nicht (dort ist nur eine main.cpp, in die iostream includiert wird) . liegt es dann nicht am compiler?



  • Ersetze mal t_main() durch main() , den Zeigertyp von argv[] durch char* und setze in den Projekteigenschaften den Zeichensatz auf "Not set".



  • hilft nix 😞

    bei GameTutorials.com wird lediglich in die einzigste datei des projektes die beiden header: <iostream> und <string> eingefügt. darunter kommt dann "using namespace std".

    hier *nochma* einen TOTAL EINFACHEN QUELLTEXT (ohne STDAFX un son müll):

    #include <iostream>				
    #include <string>				
    using namespace std;
    
    #include <tchar.h>
    
    int main()
    {
    	cout << "hi";
    	return 0;
    }
    

    hier der error output:

    ------ Build started: Project: COUT, Configuration: Debug Win32 ------
    Compiling...
    cout.cpp
    Compiling manifest to resources...
    Linking...
    cout.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<char,struct std::char_traits<char> >(class std::basic_ostream<char,struct std::char_traits<char> > &,char const *)" (__imp_???6DU??6DU?char_traits@D@std@@@std@@YAAAV?basic_ostream@DU?basic\_ostream@DU?char_traits@D@std@@@0@AAV10@PBD@Z) referenced in function _main
    C:\Dokumente und Einstellungen\Eigene Dateien\Visual Studio 2008\Projects\COUT\Debug\COUT.exe : fatal error LNK1120: 1 unresolved externals
    Build log was saved at "file://c:\Dokumente und Einstellungen\Eigene Dateien\Visual Studio 2008\Projects\COUT\COUT\Debug\BuildLog.htm"
    COUT - 2 error(s), 0 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

    ##edit: natürlich kann man "string" und "tchar" auch weglassen un man enthält den selben fehler.



  • Benötigst du den Header tchar.h? Versuch doch mal, ihn wegzulassen.
    Ansonsten, erstell doch ein neues leeres Projekt ohne vorkompilierte Header und kopier den Code, vielleicht hilfts.



  • no ging nicht.

    tchar war noch ein überbleibsel
    hab MSVC++ neu installiert , ein komplett leeres project gemacht. hab eine datei eingefügt un diesen text compiliert:

    #include <iostream>
    using namespace std;
    
    int main()
    {
    	cout << "hi";
    }
    

    error output siehe vorherige posts^^



  • Hm, das ist schon sehr merkwürdig. Du hast ja schon eine Konsolenanwendung erstellt, oder? Und nichts an den Projekt-Eigenschaften oder Include- bzw. Lib-Verzeichnissen verändert?

    Ich hab dasselbe bei mir ausprobiert, da gings einwandfrei. Was passiert, wenn du das Projekt oder die Projektmappe neu erstellst? Ich selber hatte schon ähnliche Fehlermeldungen, die danach verschwanden.

    Hast du eigentlich dieses Problem erst seit kurzem, funktionierte der VC++ vorher ohne Probleme? Im Notfall würde ich den Visual C++ Express noch einmal downloaden und neu installieren, möglicherweise wurde da etwas beschädigt.



  • consolenanwendung ist es.
    das problem hab ich keine ahnung wie lang
    ist das erste mal dass ich cout usw verwende.
    aber ich glaub ich downloade mir den scheiss nochma un guck obs dann geht.
    ich hab auch vermutet dass ich falsche include-directories verwende aber dabei können doch nicht so fehler passieren?



  • Also du benutzt ja keine anderen Dateien. Das was du da hast sollte auf Anhieb compilierbar sein.. Ausser du hast sonst was verstellt.. 🙄

    Ich würde auch mal Neuinstallation raten.



  • neuinstallation war hilflos, ich steig um auf MSVC++ 6.0 , das ist zwar alt aber funktioniert


Anmelden zum Antworten