【发布时间】:2018-01-24 01:31:25
【问题描述】:
我有一个静态库,它的头文件中有一个如下所示的类:
namespace MyNameSpace
{
class MyClass
{
public:
void Something();
};
}
我将上面的静态库链接到我的另一个动态链接库项目,现在我可以调用上面的函数,如下所示:
int Main()
{
MyNameSpace::MyClass A;
A.Something();
}
虽然上面可以正常工作,但我喜欢使用下面的静态库函数,而不是声明类:
int Main()
{
MyNameSpace::Something();
}
但我想知道这样做的正确方法。
我在静态库中尝试过:
namespace MyNameSpace
{
void Something();
}
将静态库链接到动态库后,尝试使用其中的函数:
MyNameSpace::Something();
但是,IntelliSense 看不到它,我已经包含了我的静态库的头文件并正确链接了它。
我想做的是在类外部的静态库中声明一个函数,并使其对链接到的另一个项目可见。在这种情况下,到动态库。
提前致谢。
【问题讨论】:
-
当您说“链接”静态库时,您的意思是您将其链接到动态库还是最终可执行文件?
-
否,链接到动态库。最终可执行文件不使用此功能。该函数仅在动态库中使用。我必须创建一个单独的静态库,因为我必须在其中处理 SEH 异常。 :-\
标签: c++ class namespaces