2012-04-22 2 views
0

Я уже в это время. Мне нужна базовая функция IRC Ping Pong, чтобы вернуть правильный ответ, когда сервер IRC работает. Я изменил имя функции get() на что-то еще, и я все еще получаю ошибку. Я думал, возможно, имя функции get() уже было определено в одном из включений или что-то еще.Visual C++ - get() - переопределить модификаторы различного типа c2373

#include "stdafx.h" 
#include "Ping_Pong.h" 
#include <iostream> 
#include <ws2tcpip.h> 

#ifdef _DEBUG 
#define new DEBUG_NEW 
#endif 

CWinApp theApp; 

#define MT4_EXPFUNC __declspec(dllexport) 
#pragma comment(lib, "Ws2_32.lib") 

class MT4_EXPFUNC IRC { 

private: 
    char buf[513]; 
    char rbuf[513]; 
    char sbuf[513]; 
    char *tok; 
    int recv_bytes; 
    int irc_socket; 
    struct addrinfo hints; 
    struct addrinfo *results; 
public: 
    char *nick, *user, *host, *chan, *type, *mesg; 
    int irc_connect(const char *host, const char *port, const char *nick); 
    void socket_err(const char* err_string); 
    //int join(const char *channel); 

Это имя функции в вопросе

int __stdcall get(); 

    char *check(const char* test_str); 
    char *pop_arg(char **save_ptr); 
    int init_comarg(); 
    int say(const char *channel, const char *message); 
    int sayf(const char *channel, const char *message, ...); 
    int mode(const char *channel, const char *mode, char *target); 
    //void die(); 

}; 

И это функция У меня возникли проблемы с.

MT4_EXPFUNC int __stdcall IRC::get() 
    { 


    memset(rbuf, 0, 513); 
    recv_bytes = recv(irc_socket, rbuf, sizeof(rbuf), 0); 
    if (recv_bytes <= 0) { 
     return -1; 
    } 
    std::cout << rbuf; 
    // Auto-Respond to PING messages. 
    if (rbuf[0] == 'P' && rbuf[1] == 'I') { 
     tok = strtok(rbuf, "PING :"); 
     sprintf(buf, "PONG %s", tok-1); 
     send(irc_socket, buf, strlen(buf), 0); 
     std::cout << buf; 
     memset(buf, 0, 513); 
    } 
    if (strstr(rbuf, "PRIVMSG")) { 
     memcpy(sbuf, rbuf, 513); 
     nick = strtok(sbuf, "!") + 1; 
     user = strtok(NULL, "@"); 
     host = strtok(NULL, " "); 
     type = strtok(NULL, " ") - 1; 
     chan = strtok(NULL, " "); 
     mesg = strtok(NULL, ":"); 
    } 
    return 1; 
    } 
+0

Вы должны попытаться убирая 'с помощью пространства имен std'. – juanchopanza

+0

Удалите прокомментированный код, чтобы изображение было лучше. –

+0

При публикации вопроса вы должны попытаться уменьшить код до конкретной проблемы. Весь другой код просто занимает пространство и создает шум вокруг реальной проблемы. –

ответ