问一个有关__declspec(dllexport)的问题
在DLL中定义了这样的一个结构体
#ifdef XMLSERIALIZATION_EXPORTS
#define XMLSERIALIZATION_API __declspec(dllexport)
#else
#define XMLSERIALIZATION_API __declspec(dllimport)
#endif
struct XMLSERIALIZATION_API layerAttSel
{
_bstr_t attQuestion;
};
结构体中的其他部分因为与问题无关,我都已经省略了。问题是:在编译这个DLL的时候出现了一个warning(C4251),大概的意思是说:
layerAttSel这个结构都export了,然而_bstr_t这个类却没有dllexport的标识,客户可能无法正常使用你的结构!
请问:
为什么会出现这个warning呢?定义一个_bstr_t*就不会有这样的问题,这是为什么?到底dllexport的意义是什么呀?
我的主要目的是在结构体中提供一个可变长度的字符,请问如果不想出现warning,该怎么修改?我不用MFC的。