Re[6]: libevent: как её прилинковать к проекту под Windows?
От: SteeLHeaD  
Дата: 14.02.18 14:25
Оценка:
R>правильную lib укажите (скорее всего *core.lib)

Спасибо за советы,
оказалось, что я был не прав. Есть DLL-ки.
Просто они кладутся при сборке совсем не в тот же каталог, в который кладутся либы — и я их просто сначала не заметил.

Теперь программа собирается и запускается,
ошибка при запуске изменилась:

  программа
#include <memory>
#include <cstdint>
#include <iostream>
#include <evhttp.h>

using namespace std;

int main()
{
    if (!event_init()) {
        cout << "Failed to init libevent." << endl;
    }
    else {

        cout << "Libevent initialised!" << endl;


        char const SrvAddress[] = "192.168.10.53";
        uint16_t SrvPort = 5555;
        unique_ptr<evhttp, decltype(&evhttp_free)> Server(evhttp_start(SrvAddress, SrvPort), &evhttp_free);
        if (!Server)
        {
            cout << "Failed to init http server." << std::endl;
            return -1;
        }
        void(*OnReq)(evhttp_request *req, void *) = [](evhttp_request *req, void *)
        {
            auto *OutBuf = evhttp_request_get_output_buffer(req);
            if (!OutBuf)
                return;
            evbuffer_add_printf(OutBuf, "<html><body><center><h1>Hello World! under Windows!</h1></center></body></html>");
            evhttp_send_reply(req, HTTP_OK, "", OutBuf);
        };
        evhttp_set_gencb(Server.get(), OnReq, nullptr);
        if (event_dispatch() == -1)
        {
            cout << "Failed to run messahe loop." << std::endl;
            return -1;

        }
    }
    
    return 0;

}


ошибка:
C:\MyProjects\Cpp\LibeEx1\Debug>LibeEx1.exe
[warn] evsig_init_: socketpair: Either the application has not called WSAStartup, or WSAStartup failed.
Libevent initialised!
[warn] socket: Either the application has not called WSAStartup, or WSAStartup failed.
Failed to init http server.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.