屏蔽C++头文件的内容 我必须交付一个小型的C++软件。 我想用我使用过的一些表达式模板来屏蔽头文件,以便最终用户无法识别,因此他们无法修改它们。 我不能将代码封装在静态或动态库中。是否有任何方法来屏蔽头文件的内容

屏蔽C++头文件的内容 我必须交付一个小型的C++软件。 我想用我使用过的一些表达式模板来屏蔽头文件,以便最终用户无法识别,因此他们无法修改它们。 我不能将代码封装在静态或动态库中。是否有任何方法来屏蔽头文件的内容,c++,header-files,C++,Header Files,谢谢大家! 如果这是一个只使用头的实现,除了将变量和受保护/私有成员函数重命名为没有意义的名称之外,您没有什么办法,所以所有的东西都称为xx、yy、aa、bb、ll l1、I等等 如果您的功能是独特的,并且作为源代码具有很高的价值,那么会有人努力将其混淆。如果我能花半个小时左右的时间来理解一些IOCCC代码,并使其具有合理的可读性和可理解性,那么我不确定您将使用什么技术使其更难理解,因为代码可能会更大,因此需要更长的时间,但几乎可以肯定这是毫无意义的 如果这是一个只使用头的实现,除了将变量和受保

谢谢大家!

如果这是一个只使用头的实现,除了将变量和受保护/私有成员函数重命名为没有意义的名称之外,您没有什么办法,所以所有的东西都称为xx、yy、aa、bb、ll l1、I等等


如果您的功能是独特的,并且作为源代码具有很高的价值,那么会有人努力将其混淆。如果我能花半个小时左右的时间来理解一些IOCCC代码,并使其具有合理的可读性和可理解性,那么我不确定您将使用什么技术使其更难理解,因为代码可能会更大,因此需要更长的时间,但几乎可以肯定这是毫无意义的

如果这是一个只使用头的实现,除了将变量和受保护/私有成员函数重命名为没有意义的名称之外,您没有什么办法,所以所有的东西都称为xx、yy、aa、bb、ll l1、I等等

如果您的功能是独特的,并且作为源代码具有很高的价值,那么会有人努力将其混淆。如果我能花半个小时左右的时间来理解一些IOCCC代码,并使其具有合理的可读性和可理解性,那么我不确定您将使用什么技术使其更难理解,因为代码可能会更大,因此需要更长的时间,但几乎可以肯定这是毫无意义的

我想用我使用过的一些表达式模板来屏蔽头文件,以便最终用户无法识别,因此他们无法修改它们

为什么用户不修改代码对您很重要

我不能将代码封装在静态或动态库中

你能详细说明原因吗

是否有任何方法来屏蔽头文件的内容

不是真的。头文件以文本形式包含在编译中

您可以混淆代码,这样就不会产生任何语义上的意义,用不同数量的下划线替换每个函数名,但是如果客户机需要更改它,他们仍然可以这样做,只需花更多的精力来理解您所做的

我想用我使用过的一些表达式模板来屏蔽头文件,以便最终用户无法识别,因此他们无法修改它们

为什么用户不修改代码对您很重要

我不能将代码封装在静态或动态库中

你能详细说明原因吗

是否有任何方法来屏蔽头文件的内容

不是真的。头文件以文本形式包含在编译中


您可以混淆代码,这样就不会产生任何语义上的意义,用不同数量的下划线替换每个函数名,但如果客户机需要更改它,他们仍然可以这样做,只需花更多的精力理解您所做的事情。

可能重复您为什么要这样做,为什么图书馆是不可能的?混淆代码以防止修改通常不是一个好主意,而且通常是无效的。如果您知道模板将实例化的所有类型,则可以创建静态库。即使您不完全了解,也可以将用户的类型转换为域类型,然后您可以将这些类型从标题中删除。可能重复您为什么要这样做,为什么不需要库?混淆代码以防止修改通常不是一个好主意,而且通常是无效的。如果您知道模板将实例化的所有类型,则可以创建静态库。即使您不完全了解,也可以将用户的类型转换为域类型,然后您可以从标题中删除这些类型。请注意,使用多个连续下划线会使程序非法,任何两个连续下划线的标识符都保留给C++实现编译器和STD库。然后使用字母A或类似的东西:TyPulf int A;AAA AAA,A,AAAA{{AAA+AAAA;}注意,使用不止一个连续下划线使得程序不合法,因为任何带有两个连续下划线的标识符都保留在C++实现编译器和STD库中。然后使用字母A或类似的东西:TyPulf int A;aaa,aaa,aaaa{返回aaa+aaaa;}。