css и прочее в gnu microhttpd - PullRequest
       7

css и прочее в gnu microhttpd

0 голосов
/ 14 апреля 2020

Я работаю на программном обеспечении, используя библиотеку gnu microhttpd, и оно работает нормально. В любом случае, чтобы сделать мой вывод html удобным для человека, я хочу использовать css и так далее. звучит как ошибка, но я не вижу:

так что, если кто-то может помочь.

 string sPage;
    sPage = "<html><head><link rel = \"stylesheet\" type = \"text/css\" href = \"./template.css\" /></head><body style=\"background-color:red><a href=\"../test1.htm\">Link to this folder</a><div class=\"flex-container\"><div>Le processus " + Process
    + " n\'est pas actif, impossible de se connecter</div></div><IMG src=\"../images/TrafficLights.png\"></body></html>";

    struct MHD_Response *response;
    int ret;

    //response = MHD_create_response_from_buffer (strlen (page),(void*) page, MHD_RESPMEM_PERSISTENT);
    response = MHD_create_response_from_buffer (strlen (sPage.c_str()),(void*) sPage.c_str(), MHD_RESPMEM_PERSISTENT);
    ret = MHD_queue_response (connection, MHD_HTTP_OK, response);
    MHD_destroy_response (response);

    return ret;

1 Ответ

0 голосов
/ 14 апреля 2020

Из документации MHD_queue_response :

[режим] опции управления памятью для буфера; используйте MHD_RESPMEM_PERSISTENT, если буфер является статической / глобальной памятью, используйте MHD_RESPMEM_MUST_FREE, если буфер выделен в куче и должен быть освобожден MHD и MHD_RESPMEM_MUST_COPY, если буфер находится во временной памяти (то есть в стеке) и должен быть скопирован MHD;

Так что либо определите sPage со всем его содержимым где-то статически, либо оставьте свой стек выделенным sPage, но установите режим на MHD_RESPMEM_MUST_COPY.

...