为我的应用程序隐藏文件
hide file for my application
作为初学者,我有一个小问题。我已经完成了用c++ Builder开发的一个小应用程序的构思。为了在我的应用程序中使用它们,我使用了一个有大量文本的Tmemo。在加载中我注意到,当Tmemo在概念中有大量数据时,它会减慢加载速度,并且应用程序可以在3/4秒或有时更长时间后显示!所以我决定使用一个包含所有文本的文件。使用TstringList它工作得很好,运行得很快,但是我不想让别人看到数据。
所以我问是否有一种方法可以隐藏文本文件的用户,应用程序可以使用和快速加载其信息。
WINDOWS:您可以通过调用SetFileAttributes并设置FILE_ATTRIBUTE_HIDDEN标志来实现。见http://msdn.microsoft.com/en-us/library/aa365535%28VS.85%29.aspx
LINUX:只需创建以点开头的文件。(.filename)
将大量文本加载到TMemo
中没有什么"快速"可言。它是一个UI控件,您正在将文本复制到UI的内部缓冲区中。所以载入需要时间。
但是,为了帮助加速应用程序的启动,不要在设计时直接在TMemo
中放入大量文本。这将需要时间从DFM流进来,这将减慢表单的创建,正如你正在经历的。
相反,将文本放入单独的文件中,并通过在项目中添加.rc
文件将其编译到应用程序的资源中:
MYTEXT RCDATA "mytext.txt"
在运行时,您可以使用TResourceStream
访问资源数据,并使用LoadFromStream()
方法将其加载到TMemo
中:
#include <memory>
void TMyForm::LoadMemoText()
{
std::auto_ptr<TResourceStream> strm(new TResourceString(HInstance, "MYTEXT", RT_RCDATA));
Memo1->Lines->LoadFromStream(strm.get());
}
当您准备好加载TMemo
文本时,调用LoadMemoText()
,例如在表单的OnShow
事件中,或者在计时器中,或者在响应用户操作时,或者在任何您想要的时候。这将使表单有机会在加载文本之前更快地创建并显示给用户。
没有必要在用户的硬盘驱动器上放置隐藏文件。您可以将文本嵌入到.exe
文件中,而不是在创建表单时自动加载。当你准备好加载它时加载它
- 使用VerQueryValue检索应用程序的文件描述
- 在安卓应用程序中使用.exe文件
- 为什么从文件获取图标时应用程序有时会崩溃?
- make 命令创建 .file,但不创建应用程序文件
- 如何在Windows窗体应用程序中打开txt文件并将行导入文本框
- 在不打开应用程序的情况下在MinGW c++中播放声音(.wav)文件
- 将文件从 iOS 应用程序加载到 C++ 对象中/<iostream>iOS 上的问题
- 从Qt应用程序执行MSI文件
- 如何隐藏最大化和最小化按钮并在qml应用程序窗口中显示关闭按钮?
- 根据应用程序是否已自动化显示不同的 QML 文件
- 在应用程序启动时读取文件
- 如何从二进制文件中获取应用程序的版本号?
- 如何在 CentOS 7 中为应用程序生成具有完整回溯C++的核心转储文件
- 如何将SQLite c文件(合并)与cpp应用程序链接?
- 从头开始为使用Qt的应用程序制作简约的构建文件
- VS Express 2015 Win10 应用程序 - ifstream 无法打开文件
- 为C++ Linux 应用程序创建隐藏的配置文件
- 为我的应用程序隐藏文件
- 如何在windows中以编程方式关闭打开的文件/应用程序
- C++ - 如何隐藏其他应用程序的窗口