在C++中编写库时,我们需要将实现隐藏在头文件中。但是我们需要包含源文件以使库工作。但用户可以很容易地在你的库中找到你的源文件。那么如何隐藏源文件呢?着名的图书馆如boost有什么作用?如何阻止客户端检查库中的源代码
回答
您不能隐藏头文件中的源代码。唯一的办法是把代码放在你的.cpp文件中,这样它就不能被查看。此外,如果速度是一个问题,您可以使函数inline
要求编译器以这种方式优化它们。
STL并增加了源代码,以便您可以阅读它(但由于它们使用的命名约定而不易阅读)。
如果客户端可以找到您的源文件,隐藏实现有什么用处?顺便说一句,我不认为我发现任何与源文件中的主要boost库有关的实现。 – Blip
@VictorPrograss然后你看错了地方。 boost的完整源代码可以免费下载。 – drescherjm
@VictorPrograss,就是这一点。在将要在.hpp文件中分发模板代码时,隐藏实现是没有用的。 boost库.hpp文件是实现。 –
如果您绝对必须分发源代码,那么您最好将代码混淆。
但是,您为什么不希望客户看到源代码?如果你觉得自己放弃了太多,那么就更多地为它们收费,并提供一个可分发的库。
对于混淆器,请参阅:https://stackoverflow.com/questions/1025494/obfuscating-c-c-code
- 1. 阻止查看源代码
- 2. 如何防止客户端阻塞外部资源?
- 3. 如何禁用浏览器从客户端用户端查看ASP源代码?
- 4. System.Data.Services客户端:GitHub上的源代码
- 5. 发布客户端的源代码
- 6. 如何阻止一个国家访问使用客户端代码的网站
- 7. 客观C阻止代码
- 8. 客户端可以查看服务器端PHP源代码吗?
- 9. ActiveMQ客户端jar源代码
- 10. 如何在GWT中引用客户端使用的第三方库源代码?
- 11. 如何检查imageview中的源代码?
- 12. 如何检查客户端的NLS_LANG?
- 13. 如何摆脱客户端的webpack源代码?
- 14. 应该如何阻止需要阻止但不是由客户端的服务?
- 15. 如何防止客户端无法混淆Ioncube的代码?
- 16. Java TCP客户端发送被阻止?
- 17. Aerospike Java异步客户端阻止
- 18. file_get_contents/curl阻止其他客户端
- 19. 阻止用户按角色查看流星客户端脚本
- 20. ASP.NET AXD资源在客户端被阻止?
- 21. 客户端js:检查文件编码
- 22. 如何检查客户端Java版本?
- 23. 如何检查WCF客户端通道(服务)是否终止?
- 24. 如何从Web应用程序阻止特定的客户端?
- 25. 如何检查是否域阻止代理服务器 - 使用jQuery /客户端脚本
- 26. 如何检查客户端JavaScript中的端口可用性?
- 27. 检测客户端中止请求Jersey
- 28. 如何检查源代码被禁止的话extGWT
- 29. 如何使用Javascript代码查找客户端的IP地址
- 30. 使用C#代码检查默认邮件客户端
boost不会以任何方式隐藏源。它完全开放。 – drescherjm
以二进制形式分发库+头文件? (注意:人们仍然可以逆向工程)否则不可能。 – user2802841
如果你给他们的源,我没有看到任何方式来隐藏它.. – drescherjm