2

I have read several related post on stackoverflow but couldn't relate the solutions with the problem in my code. Description of error is

1>CAN.obj : error LNK2019: unresolved external symbol "public: __thiscall CLogObjectCAN::CLogObjectCAN(class CString)" (??0CLogObjectCAN@@QAE@VCString@@@Z) referenced in function "void __cdecl `dynamic initializer for 'd_obj''(void)" (??__Ed_obj@@YAXXZ)

why compiler throwing this error ?, i am not good in OOP, trying to modify some existing mode.

CAN.cpp

#include "BaseLogObject.h"
 #include "LogObjectCAN.h" 
CString s2( "version" );
CLogObjectCAN *d_obj = new CLogObjectCAN(s2);
CBaseLogObject *obj = d_obj;

static int config_print_error(int error, int channel) {
    CString Header= "";
    obj->vLog_Embaserror(Header, "EMBAS");
}

BaseLogObject.h

class CBaseLogObject {
public:
    CBaseLogObject(CString omVersion);

    ~CBaseLogObject();
virtual void vLog_Embaserror(CString& omHeader, char* mHeader);
};

BaseLogObject.cpp

#include "BaseLogObject.h"
CBaseLogObject::CBaseLogObject(CString omVersion):m_omVersion(omVersion) {
    vResetValues();
} 
void CBaseLogObject:: vLog_Embaserror(CString& omHeader, char* mHeader) {
    omHeader = "***EMBAS ";

}

LogObjectCAN.h

#include "BaseLogObject.h"
class LogObjectCAN: public CBaseLogObject {
public:

void vLog_Embaserror(CString& omHeader, char* mHeader);
public:
    CLogObjectCAN(CString omVersion);    
    ~CLogObjectCAN(); 
}

LogObjectCAN.cpp

#include "LogObjectCAN.h" 
    CLogObjectCAN::CLogObjectCAN(CString omVersion):CBaseLogObject(omVersion) {
        // Initialise the filtering block
        m_sFilterApplied.vClear();
        m_pasControllerDetails = NULL;
        m_nNumChannels = 0;
    }
    void CLogObjectCAN::vLog_Embaserror(CString& omHeader, char* mHeader) {
        if(strcmp(mHeader, "EMBAS")== 0) {
            CBaseLogObject::vLog_Embaserror(omHeader, "driver");
            omHeader += CAN_Embas;
            omHeader += L'\n';
        }
    }
User
  • 619
  • 1
  • 9
  • 24
  • @Oliver Chrlesworth I have issue only in the file CAN.cpp, have gone through the answers you recommend but still no clue in context of above error. – User Oct 12 '14 at 19:46
  • _@User_ Read it again please! – πάντα ῥεῖ Oct 12 '14 at 19:49
  • @πάντα ῥεῖ Sorry ! but i couldn't understand everything and whatever i understood i couldn't solve my issue based on that. It would be very nice if you can please recommend me some remedy. – User Oct 13 '14 at 12:17
  • _@User_ Looks like you missed to link `LogObjectCAN.cpp` to your project, you linked them in wrong order. All of these scenarios, and more are well described in the duplicate question. – πάντα ῥεῖ Oct 13 '14 at 12:28

0 Answers0