在其命名空间中导出函数?

use*_*117 3 c++ dll namespaces export function

我很确定这不可能从我读过的内容中尝试过.虽然为了方便代码的连续性,我想在这里问一下.

是否可以将函数与其命名空间容器一起导出?

例如:

namespace Continuity
{
    int Foo(void);
}
Run Code Online (Sandbox Code Playgroud)

标准用法是: Continuity::Foo();

我希望能够导出此函数以在DLL中使用,但是我想将其保留在命名空间结构中,以便我可以在DLL中使用相同的用法.

R S*_*ahu 5

您询问:

是否可以导出函数及其命名空间容器示例:

对的,这是可能的.

使用:

namespace Continuity
{
   DLL_EXPORT int Foo(void);
}
Run Code Online (Sandbox Code Playgroud)

其中DLL_EXPORT#defined至任一__declspec(dllexport)__declspec(dllimport)适当.

在构建DLL的项目中,您将需要:

#define DLL_EXPORT __declspec(dllexport)
Run Code Online (Sandbox Code Playgroud)

在使用DLL的项目中,您将需要:

#define DLL_EXPORT __declspec(dllimport)
Run Code Online (Sandbox Code Playgroud)