Compilen fehlerfrei, linken nicht -> Dateisuche



  • Folgende Fehler

    --------------------Konfiguration: Text1 - Win32 Debug--------------------
    Linker-Vorgang läuft...
    nafxcwd.lib(thrdcore.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __endthreadex
    nafxcwd.lib(thrdcore.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __beginthreadex
    Debug/Text1.exe : fatal error LNK1120: 2 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.
    
    Text1.exe - 3 Fehler, 0 Warnung(en)
    

    werden beim linken erzeugt - kann damit jemand was damit anfangen (VC++ 6)?

    #include <afx.h>
    #include <fstream>
    #include <iostream>
    #include <string>
    #include <map>
    using namespace std;
    
    void suchen(string &pfad)
    {
    
    	CFileFind finder;
    
    	CString strWildcard;
    	strWildcard += _T("\\*.img");
    
    	// start working for files
    	BOOL bWorking = finder.FindFile(strWildcard);
    
    	while (bWorking)
    	{
    		bWorking = finder.FindNextFile();
    		// skip . and .. files; otherwise, we'd
    		// recur infinitely!
    		if (finder.IsDots())
    			continue;
    		CString dateiname = (LPCTSTR) finder.GetFileName();
    		cout << dateiname << endl;
    	}
    	finder.Close(); 
    }
    int main(void)
    {
        string pfad;
        suchen(pfad);
        getchar();
    	return 0;
    }
    


  • du hast wahrscheinlich vergessen die MFC dll einzubinden



  • Und das mache ich wo 😕

    Als ich ähnlichen Code in VC++ .NET 2003 benutzt habe mußte ich auch nix extra einbinden.



  • ganz einfach

    in VC++6 -> Project->Settings->General

    da steht wahrscheinlich "Not Using MFC" bei dir, das aendern auf
    "Use MFC in a Static Library" {oder Shared musst du wissen}

    wenn du ein leeres projekt startest ist es standardmaessig deaktiviert - sobald du die mfc benutzen willst musst du diese auch aktivieren

    VC7 hat die eigenschaft - je nachdem wie du das projekt erstellt hast, ist diese option entweder akt oder deaktiviert
    {Project->Properties->General->Use of MFC / Use of ATL}

    wenn du eine consolenanwendung mit MFC benutzen willst - wuerd ich empfehlen gleich bei der erstellung die MFC zu aktivieren



  • Das klappt schon mal allerdings wird beim ausgeben Grütze produziert. Cout produziert irgendwelche Hexadezimalen Zahlen à la 00941F7C. Ist das die Adresse von irgendeinem Pointer? Was muß ich machen, um die Dateien öffnen zu können?



  • Wenn du mit cout arbeitest, ist std::string und std::fstream vermutlich praktischer in der Anwendung als ihre MFC Äquivalente.



  • Hast Du da mal einen Link zur Hand? 🙂

    edit: Hab verstanden, was Du meinst...



  • oder wenn du unbedingt cout und cin benutzen willst, dann entweder std::cout std::cin

    {auch vector und iterator usw gehoert zu std}

    oder namespace std;
    der vorteil hier ist das du std:: nirgends mehr schreiben musst {o;


Anmelden zum Antworten