我相当肯定这是不可能的,从我读过,并尝试。虽然易用性和连续性的代码,我想问一下这里。
是否有可能与它的命名空间容器一起导出的函数吗?
例如:
namespace Continuity
{
int Foo(void);
}
标准用法是:Continuity::Foo();
我希望能够导出此功能在DLL使用,但是我想保持它在命名空间结构,使我可以使用DLL中的用法相同。
您询问:
是否有可能随着它的命名空间容器例如导出功能:
对的,这是可能的。
采用:
namespace Continuity
{
DLL_EXPORT int Foo(void);
}
其中DLL_EXPORT
是#define
d要么__declspec(dllexport)
或__declspec(dllimport)
适当。
在你建立的DLL项目,您需要:
#define DLL_EXPORT __declspec(dllexport)
在您使用DLL项目,您需要:
#define DLL_EXPORT __declspec(dllimport)
确保不使用的extern“C”声明,否则不用于连接功能的命名空间中的功能时。然后,您可以有2个DLL文件在2名不同的命名空间相同的功能,但只有一个功能会随机基于功能的加载顺序上调用。