我有.lib和.dll文件,但没有.h-如何在其他C ++项目中使用那些库中的方法?

问题描述 投票:0回答:2

大家好!

我有以下情况:我需要从另一个非常大的项目(称为B)导入我的Visual Studio 2019 C ++项目(称为此[[A])方法。实际上,我为此B项目拥有一个.sol文件,并且可以成功构建静态库(B.lib)和动态库(B.dll)。问题是-我想从A中的B调用某些方法,但我不能只加载B的标头并在A中创建一些类,该类继承B中需要的类以及所有需要的方法,因为B确实是一个非常大的项目,并且在“主标头”中使用了许多自定义类,这些类仅合并到项目中,而我真的很想尝试导入标头,以使标头起作用,以使“ main”标头在我的项目中起作用,等等。我认为您明白了。[第二件事更具体:我试图用LoadLibraryGetProcAdress加载DLL。有用。实际上,对于我真正需要的所有方法,在

B

中都为每个方法定义了一个无效的外部版本,该版本将指向类对象的指针作为参数。问题是-如果B中没有工厂函数,该如何获取此类的实例-即函数返回所需的类对象的指针,我可以将其从.dll加载到我的A中?我无法附加适当的代码,因为该代码受cw保护。 .lib文件也许有可能吗?这对事物如何协同工作,这确实是我的问题。所以,有什么方法可以从那些库中获取方法?请更详细地解释,如果您有时间,我是C ++开发的大三,并且我并不总是清楚地知道这意味着什么。就像“只是链接.lib文件并使用它”-如何使用?..依此类推

感谢您的帮助!

大家好!我有以下情况:我需要从另一个非常大的项目(称为B)导入我的Visual Studio 2019 C ++项目(称为A)方法。其实我有一个.sol ...

c++ visual-studio dll lib
2个回答
0
投票
这可以通过将B静态链接到A来实现。首先,您必须构建B的解决方案并获取lib文件。然后将lib文件作为附加依赖项添加到A的项目中。最后分离B的头文件,并将头文件的位置添加到A的“其他包含目录”部分。

0
投票
静态库会增加二进制文件中代码的大小。它们始终处于加载状态,而您编译时使用的任何版本的代码都是将运行的代码的版本。
© www.soinside.com 2019 - 2024. All rights reserved.