Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我如何在可执行文件中嵌入资源以对用户隐藏它们?_C++_Embedded Resource - Fatal编程技术网

C++ 我如何在可执行文件中嵌入资源以对用户隐藏它们?

C++ 我如何在可执行文件中嵌入资源以对用户隐藏它们?,c++,embedded-resource,C++,Embedded Resource,我正在建立一个程序,将随机选择一个文件中的文本 我可以使用什么来向用户隐藏包含文本的文件 是否可以将此文本构建到可执行文件中 是否可以将此文本构建到可执行文件中 将文本文件包含为内联资源的一种方法是稍微修改文本文件并使用include语句: 文本文件的格式: R"rawtext( Put all of the text input you want here: ... )rawtext" 在编译的预处理步骤中,可能还可以使用一个小工具来完成修改,该工具仅围绕要与程序内联的文本: 例如,在GNU

我正在建立一个程序,将随机选择一个文件中的文本

我可以使用什么来向用户隐藏包含文本的文件

是否可以将此文本构建到可执行文件中

是否可以将此文本构建到可执行文件中

将文本文件包含为内联资源的一种方法是稍微修改文本文件并使用include语句:

文本文件的格式:

R"rawtext(
Put all of the text input you want here:
...
)rawtext"
在编译的预处理步骤中,可能还可以使用一个小工具来完成修改,该工具仅围绕要与程序内联的文本:

例如,在GNU makefile中:

 MySource.cpp: MySource.h MyTextFile.inc

 MyTextFile.inc: MyTextFile.txt
     sed -e "s/\(.*\)/R'rawtext(\1)rawtext'/" < $< > $@
并将其与std::istream一起使用,就像从外部打开的文件中使用一样


你可以阅读更多关于原始字符串文字。

< P>一个好的方法将一个资产文件建立到你的C++可执行文件中,就是把它转换成一个头文件,你可以把它包含到源代码中。 这个问题的答案显示了如何使用linux命令xxd将任意文件转换为头文件

如果您决定需要使用诸如十六进制编辑器之类的工具来阻止更坚定的用户查看文本,这些工具可以查看可执行文件中的文本,那么您可以压缩和/或加密文件,并在运行时对其解密

希望这有帮助


James

请提供您编写的代码示例以及代码不起作用的原因。至于你的问题,我想说你确实可以在你的program.Off-topic中包含一个完整的文本文件。您可以使用操作系统特定的技巧文件权限、setuid等。。。。您可以将文本放入某些sqlite数据库中。你可以对它进行加密、压缩或以某种方式使其模糊。即使你在可执行文件中构建它,它仍然是可读的。用记事本打开所有的.exe文件。你可以很容易地看到他们所有的字符串。如果这是你真正需要的,请压缩并加密它。但是,为什么您会关心用户是否可以看到该文件?您希望用户必须付出多大的努力才能找到这些资产?你想把谁排除在你祖母对政府的影响之外?
std::istrstream input(
#include "MyTextFile.inc"
);