Zeiger zeigt angeblich nicht auf eine Klasse

Silvercreast

Erfahrenes Mitglied
Guten Morgen,

ich arbeite an einem Server/Client Programm unter MFC, ich habe folgendes Problem ich kriege von meinem Compiler folgende Fehlermeldung:

C:\Dokumente und Einstellungen\Dors\Desktop\C++\Client\mfc common\ssmcSocket.cpp(858) : error C2227: Der linke Teil von '->connectToServer' muss auf Klasse/Struktur/Union zeigen

Ich würde diese Fehlermeldung ja verstehen, wenn mir der Compiler dann nicht noch den Fehler im Code zeigen würde
Code:
Code:
if (m_pClient->connectToServer(serverIPAddress, ADDRESS))

Diese Fehlermeldung bezieht sich auf den Zeiger m_pClient der wie Ihr hier seht:

Code:
class CClientDlg : public CDialog
{
// Konstruktion
public:
CClientDlg(CWnd* pParent = NULL); // Standard-Konstruktor

// Dialogfelddaten
//{{AFX_DATA(CClientDlg)
enum { IDD = IDD_CLIENT_DIALOG };
// HINWEIS: der Klassenassistent fügt an dieser Stelle Datenelemente (Members) ein
//}}AFX_DATA

// Vom Klassenassistenten generierte Überladungen virtueller Funktionen
//{{AFX_VIRTUAL(CClientDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung
//}}AFX_VIRTUAL

// Implementierung
protected:
HICON m_hIcon;
ssmcTcpSocket * m_pClient;
CString m_strServerName;
DWORD m_dwServerIP;
CString m_strThreadId;
HANDLE m_hWriteMutex;

void LoginUser();
int ReceiveMessageFromServer(CString& strMessage);
CString ReadServerConfig();
int SendMessages(LPCTSTR lpszMessage, int nRepeat);
int SendMessageToServer(LPCTSTR lpszMessage);
BOOL StartClient();


// Generierte Message-Map-Funktionen
//{{AFX_MSG(CClientDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnbtnVermietung();
afx_msg void OnbtnLeasing();
afx_msg void OnbtnReturn();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
Code:

if (m_pClient->connectToServer(serverIPAddress, ADDRESS))

Diese Fehlermeldung bezieht sich auf den Zeiger m_pClient der wie Ihr hier seht:

class CClientDlg : public CDialog
{
// Konstruktion
public:
    CClientDlg(CWnd* pParent = NULL);    // Standard-Konstruktor

// Dialogfelddaten
    //{{AFX_DATA(CClientDlg)
    enum { IDD = IDD_CLIENT_DIALOG };
        // HINWEIS: der Klassenassistent fügt an dieser Stelle Datenelemente (Members) ein
    //}}AFX_DATA

    // Vom Klassenassistenten generierte Überladungen virtueller Funktionen
    //{{AFX_VIRTUAL(CClientDlg)
    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV-Unterstützung
    //}}AFX_VIRTUAL

// Implementierung
protected:
    HICON m_hIcon;
    ssmcTcpSocket * m_pClient;
    CString            m_strServerName;
    DWORD            m_dwServerIP;
    CString            m_strThreadId;
    HANDLE            m_hWriteMutex;

    void LoginUser();
    int                ReceiveMessageFromServer(CString& strMessage);
    CString            ReadServerConfig();
    int                SendMessages(LPCTSTR lpszMessage, int nRepeat);
    int                SendMessageToServer(LPCTSTR lpszMessage);
    BOOL            StartClient();


    // Generierte Message-Map-Funktionen
    //{{AFX_MSG(CClientDlg)
    virtual BOOL OnInitDialog();
    afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
    afx_msg void OnPaint();
    afx_msg HCURSOR OnQueryDragIcon();
    afx_msg void OnbtnVermietung();
    afx_msg void OnbtnLeasing();
    afx_msg void OnbtnReturn();
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
};


aber auf eine Klasse zeigt :confused:. Jetzt denkt Ihr sicherlich der hat bestimmt nur ne include vergessen, aber das habe ich nich, ich habe auch nochmals geprüft ob ich den Befehl in der richtigen cpp ausführe und das habe ich auch richtig gemacht.

Ich kann mir nur noch einen Fehler vorstellen aber ich weiss net wieso das nicht gehen sollte und zwar ist die ssmcTcpSocket.h abgeleitet von einer anderen Class ssmcSocket.h diese beiden Klassen habe ich in einer Headerdatei. Zuerst die ssmcSocket.h dann die ssmcTcp Socket.h. Kann ich da irgendeinen Fehler gemacht haben :confused: Ich kann es mir nicht vorstellen. Wenn Ihr den Code dazu sehen wollt sagt nur bescheid.

MFG Silver
 
So schnell kann es gehen mit der Lösung, nachdem ich einen Kollegen befragt habe und der sich das mit mir angeguckt hat, haben wir festgestellt das ich eine doppelte winsock.h definition gemacht habe
 
Zurück