SendGet

TheDed

Участник
Автор темы
99
14
Код:
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall MyGet::Init(char const *)" (?Init@MyGet@@QAEXPBD@Z) в функции "void __stdcall mainloop(void)" (?mainloop@@YGXXZ)

1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall MyGet::DeInit(void)" (?DeInit@MyGet@@QAEXXZ) в функции "void __stdcall mainloop(void)" (?mainloop@@YGXXZ)

1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall MyGet::SendGet(char const *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)" (?SendGet@MyGet@@QAEXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) в функции "void __stdcall mainloop(void)" (?mainloop@@YGXXZ)

Взял метод из этой темы 'blast.hk/threads/24280', но при компиле происходит ошибка. Как разрешить внешний символ, чтобы ошибка пропала?
 

deropleat

Известный
105
56
myGet.cpp
C++:
#include "myGet.h"

CMyGet * MyGet = new CMyGet;

void CMyGet::Init(const char* site)
{
    hIntSession = InternetOpenA("Test", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
    if (hIntSession != NULL) hHttpSession = InternetConnectA(hIntSession, site, 80, 0, 0, INTERNET_SERVICE_HTTP, 0, NULL);
}

void CMyGet::DeInit()
{
    InternetCloseHandle(hHttpRequest);
    InternetCloseHandle(hHttpSession);
    InternetCloseHandle(hIntSession);
}

void CMyGet::SendGet(const char* Url, std::string &Buffer)
{
    hHttpRequest = HttpOpenRequestA(hHttpSession, "GET", Url, 0, 0, 0, INTERNET_FLAG_RELOAD, 0);
    CHAR* szHeaders = "Content-Type: text/html\nMyHeader: Check text"; CHAR szReq[1024] = "";
    HttpSendRequestA(hHttpRequest, szHeaders, strlen(szHeaders), szReq, strlen(szReq));
    CHAR szBuffer[1025]; DWORD dwRead = 0;
    while (InternetReadFile(hHttpRequest, szBuffer, sizeof(szBuffer) - 1, &dwRead) && dwRead)
    {
        szBuffer[dwRead] = 0;
        dwRead = 0;
    }
    Buffer.append(szBuffer, sizeof(szBuffer));
}

myGet.h
C++:
#pragma once

#include <windows.h>
#include <wininet.h>
#pragma comment(lib,"wininet")
#include <string>

class CMyGet
{
public:
    void Init(const char* site);
    void DeInit();
    void SendGet(const char* Url, std::string &Buffer);
private:
    HINTERNET hIntSession;
    HINTERNET hHttpSession;
    HINTERNET hHttpRequest;
}; extern CMyGet * MyGet;

Использовать MyGet->Функция; тобишь пример: MyGet->DeInit();

А вообще, в теме пишут что ошибка в функции SendGet / myGet.cpp ~ 29s (на том, что я прислал)