C++ 导出C+中的类+;DLL在编译时发出警告

C++ 导出C+中的类+;DLL在编译时发出警告,c++,dll,C++,Dll,我在网上发现了一个IPC库,编译后它将变成“.lib”,所以我尝试将它转换为DLL而不是使用.lib,但在声明导出功能后,我需要导出VS Express编译器,并给出了警告 “PipeTransport::buf_979;”:类“std::vector>”需要>具有dll接口以供类的客户端使用 出口定义 #define EXPORT __declspec(dllexport) 这是导出的代码 class EXPORT PipeTransport : public PipeWin { publi

我在网上发现了一个IPC库,编译后它将变成“.lib”,所以我尝试将它转换为DLL而不是使用.lib,但在声明导出功能后,我需要导出VS Express编译器,并给出了警告

“PipeTransport::buf_979;”:类“std::vector>”需要>具有dll接口以供类的客户端使用

出口定义

#define EXPORT __declspec(dllexport)
这是导出的代码

class EXPORT PipeTransport : public PipeWin {
public:
  static const size_t kBufferSz = 4096;

  size_t Send(const void* buf, size_t sz) {
    return Write(buf, sz) ? ipc::RcOK : ipc::RcErrTransportWrite;
  }

  char* Receive(size_t* size);

private:
  IPCCharVector buf_;//The Line giving error
};
图书馆链接是

给出错误的头文件为


我读过,但无法让它工作,因为我不太了解它,因为我是C++新手(完全不懂)。

C导出类对象的方法将是这样的,但我不知道如何在DLL中导出类

Here your DLL
class AbstractClass
{
public:
    virtual void somefunction() = 0;
}

//Inherite from this class
class MyClass : public AbstractClass
{
    virtual void somefucntion(){/*implement*/}
}

//Create your export object
MyClass* myObject = NULL;

//Create some EXPORT define to make it easy when you declare function
#define EXPORT_DLL __declspec(dllexport)

//Declare function
extern "C" EXPORT_DLL void* myExportedFunction ();

//Implement
EXPORT_DLL void* myExportedFunction ()
{
    if(myObject == NULL)
        myObject = new MyClass();
    return myObject;
}
现在从函数的外部可以这样调用这个函数。当然你需要加载你的dll,你的函数和其他东西,在这里我只是通过这些步骤,告诉你如何使用这些代码

//You must have a declaration of your abstract class in exterior of dll
AbstractClass* dllObjet = NULL;

dllObject = myExportedFunction()

//And now you can use it
dllObject->somefucntion();

如果你用谷歌搜索你的错误,答案会在第一个结果中返回。为什么我们要为你搜索一些东西?也许它在你的位置显示了结果,谷歌没有在这里显示给我。。。谢谢你的建议。。。这正是我想知道的。。。使一个班级精神错乱。。。再次感谢你,我错了。你可以将classess从DLL中导出。哦,糟糕,我一直认为这是不可能的,我看了谷歌,你是对的,对不起,我修改了我的答案如果我不需要这些类呢?我应该按照这个方法来简化函数名而不是所有的::类位吗?