我们有一个创建为.lib和.dll的库(这是一个完全用 C++ 编写的 Windows 平台的大型库)。用户可以在他们的程序或库中或他们想要使用的任何地方使用该库。
但是我想将某些功能限制为某些用户。
例如,让我们说,
- 我们的库有 3 个函数
foo()
,bar()
和hoo()
. - 用户A为这些功能付费
foo()
,bar()
并且hoo()
。 - 用户B为功能
bar()
和hoo()
.
因此,当我们向B提供库文件(headers/libs/dlls 等)时,
- 我们可以创建我们库的副本并删除 foo() 函数及其相关内容并将其发送给B
或者我们可以将整个库发送给他,并通过某种方式阻止他使用
foo()
.- 第一种方法不好,因为它是一项巨大的工作,并且必须小心依赖关系。即使我们确实知道
bar()
并且hoo()
不依赖于foo()
,删除东西并给他们一个定制版本的 lib 仍然是一件令人头疼的事情,其中还包括更多的测试。维护将更加成问题。SVN也会很混乱。 - 第二种方法是我猜的最好方法。但是怎么做呢?
- 第一种方法不好,因为它是一项巨大的工作,并且必须小心依赖关系。即使我们确实知道
如果Bfoo()
以后为功能付费怎么办?那我就得让他用了。
我想现在你明白了这个问题。这两种方式只是我的观点,也许我对它们的结论也可能是错误的。所以,我问是否有人对此事有任何想法/建议。