我想创建一个 C++ dll(用于点网应用程序)。我需要的一些功能已经在另一个 C++ dll 中实现了。
我引用的 dll 是这样设置的(包括注释):
extern "C"
{
__declspec(dllexport) BOOL SomeFunctionToBeUsedExternally();
}
// internal functions
BOOL OtherFunctions();
我需要OtherFunctions
在我的代码中使用其中之一。
因此,我在自己的代码中添加了正确的包含,添加了对上面 dll 创建的 lib 的依赖项,并使用了我需要的方法。结果,当然,我得到了另一个__declspec(dllexport)...
功能。
虽然它拒绝链接,但我收到一个关于OtherFunction
.
我验证了一切,在网上查看 - 似乎没有什么能解决我的问题。
然后,我__declspec(dllexport)
在我需要的函数前面添加了一个,它就可以工作了。
不过我不明白。我想,带有 dllexport 标记的函数将被导出到 dll 中,但不是所有函数都发送到 lib 吗?
如果我不是针对 dll 而是针对 lib 链接,为什么我必须将函数导出到 dll ?