Linkerfehler: nicht auflösbares externes...



  • Hallo zusammen,

    ich bekomme beim Compilieren eine Fehlermeldung:

    [ilink32 Fehler] Error: Nicht auflösbares externes 'CheckValue::checkString(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)' referenziert von C:\USERS\PUBLIC\DOCUMENTS\CPP3DCONTROL\WIN32\DEBUG\SETUPSHIPSRC.OBJ
    

    Im Prinzip möchte ich aus einer Funktion heraus einen String von der Methode checkString überprüfen und verändern lassen, wenn dort ein Dezimalpunkt gefunden wird. Dieser wird dann zu einem Komma ausgetauscht.

    Jedoch bekomme ich immer o.g. Fehlermeldung beim linken

    Dies ist mein aufrufender Befehl:

    CheckValue checkval;
       std::string StrTest = "Hallo, wie geht es dir. Mir geht es gut";
       std::string StrAusgabe = checkval.checkString(StrTest);
    

    Die CheckValue.h schaut so aus:

    //---------------------------------------------------------------------------
    #ifndef CheckValueH
    #define CheckValueH
    #include <string>
    
    /*---------------------------------------------------------------------------
    | Funktion:           checkString
    |----------------------------------------------------------------------------
    | Beschreibung:       prüft ob eingehender String korrekte Syntax hat
    |
    | Übergabeparameter:  StrInsert: zu überprüfender String
    | Rückgabeparameter:  korrekter String
    ---------------------------------------------------------------------------*/
    class CheckValue{
    public:
    std::string checkString(std::string StrInsert);
    
     };
    //---------------------------------------------------------------------------
    #endif
    

    Die CheckValue.cpp schaut so aus:

    //---------------------------------------------------------------------------
    
    #pragma hdrstop
    #include "CheckValue.h"
    #include "general.h"
    
    std::string checkString(std::string StrInsert)
    {
    
    int iStrIndex = 0;
    
    iStrIndex = StrInsert.find('.');
    
    if (iStrIndex > 0) {
    		// Dezimalpunkt wurde erkannt und nun ausgetauscht
    		StrInsert[iStrIndex] = ',';
    }else{
    		StrInsert = StrInsert;
    }
    
    return StrInsert;
    
    }
    
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    


  • 'checkString' ist bei dir eine freie funktion.



  • roflo schrieb:

    'checkString' ist bei dir eine freie funktion.

    Das bedeutet?...
    Edit:
    Natürlich... 😃

    Fehler gefunden und läuft.

    Habe in der .cpp nun folgendes:

    std::string CheckValue::checkString(std::string StrInsert)
    


  • Genau 😉


Log in to reply