lnk2019外部虚函数 [英] lnk2019 external virtual function

查看:109
本文介绍了lnk2019外部虚函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆