lnk2019外部虚函数 [英] lnk2019 external virtual function
问题描述
我正在使用http libary,我尝试将其移植到Windows。我现在的问题是编译它我得到了一个lnk2019。
i'am working on http libary i try port it to windows. My problem is now to compile it i got an lnk2019.
我怎样才能将函数声明为extern?
How can i declare a function as extern ?
该项目在github https上: //github.com/Tuxist/libhttppp /
The project is on github https://github.com/Tuxist/libhttppp/
库内的定义
#ifndef QUEUE_H
#define QUEUE_H
namespace libhttppp {
class Queue : public ConnectionPool {
public:
Queue(ServerSocket *serversocket);
virtual ~Queue();
#ifdef MSVC
__declspec(dllexport) virtual void RequestEvent(Connection *curcon);
#else
virtual void RequestEvent(Connection *curcon);
#endif
private:
HTTPException _httpexception;
};
}
#endif
图书馆内的使用
usage inside library
Queue::Queue(ServerSocket *socket) : ConnectionPool(socket) {
HANDLE iocp = CreateIoCompletionPort(INVALID_HANDLE_VALUE, 0, 0, 0); // equals epoll_create
CreateIoCompletionPort(socket, iocp, 0, 0); // equals epoll_ctl(EPOLL_CTL_ADD)
for(;;){
// if(GetQueuedCompletionStatus(iocp, &number_bytes, &key, &o, INFINITE)) // equals epoll_wait()
// do_something();
Connection *curcon;
RequestEvent(curcon);
}
}
实现外部库
implementing outside library
void libhttppp::Queue::RequestEvent(libhttppp::Connection *curcon){
try{
std::cerr << "Parse Request\n";
libhttppp::HttpRequest curreq;
curreq.parse(curcon);
std::cerr << "Send answer\n";
sendResponse(curcon,&curreq);
}catch(HTTPException &e){
std::cerr << e.what() << "\n";
throw e;
}
}
推荐答案
你好Tuxist,
Hi Tuxist,
这个论坛是关于MSBuild的,因为你的问题与 有关。 C ++编程语言,我们帮助您将其移动到 C ++编程语言问题论坛以获得更好的支持。
感谢您的理解。
This forum is about the MSBuild, as your issue is more related to C++ programming language, we help you move it to the C++ programming language Questions forum for better support.
Thank you for your understanding.
这篇关于lnk2019外部虚函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!