我正在尝试使用Casablanca,http服务器。为此,我需要包含来自Casablanca的头文件,其中包含很少的宏和typedef导致我的项目出现问题。
所以我的文件看起来像这样。
simplehttpserver.h
#include "cpprest/json.h"
#include "cpprest/http_listener.h"
#include "cpprest/uri.h"
#include "cpprest/asyncrt_utils.h"
SimpleHttpServer {
SimpleHttpServer(utility::string_t, std::function<void(http_request)> &request_handler);
void OnInitialize();
void StartServer();
void StopServer();
private:
std::unique_ptr<http_listener> m_listenerUptr;
// Handlers
std::function<void(http::http_request)> m_all_requests;
pplx::task<void> open() { return m_listenerUptr->open(); }
pplx::task<void> close() { return m_listenerUptr->close(); }
// SimpleHttpServer http_server_;
utility::string_t address_;
}
在我的原始代码中说我想要包含它。
#include "simplehttpserver.h"
这导致所有预先编译到我的项目中的Casablanca头文件与我的项目中的宏和typedef冲突。 例如__declspec
我不想更改我的宏因为会有很多代码更改。而且我不想更改Casablanca头文件,因为这也会导致长期维护开销。
我确信,这在c ++中一定是非常常见的问题,请有人帮我解决这个问题。
提前谢谢。