从另一个动态链接库项目调用静态库函数

时间:2017-08-16 03:12:30

标签: c++ class namespaces

我有一个静态库,它的头文件中有一个如下所示的类:

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没有看到它,我已经包含了我的静态库的头文件并将其正确链接。

我想要做的是在类外部的静态库中声明一个函数,并使其链接到的另一个项目可见。在这种情况下,到动态库。

先谢谢。

1 个答案:

答案 0 :(得分:0)

我终于能够通过声明如下功能来做我想做的事了:

在静态库中:

namespace MyNameSpace
{
    void Something();
}

在动态链接库中:

MeNameSpace::Something();

现在,即使在文件范围之外,该功能也可见。