将文本嵌入到 Windows 应用程序的可执行资源中
在 C Windows 程序中嵌入数据,包括文本文件,可以通过用户定义来实现资源。此技术涉及创建一个包含文本文件的二进制内容的单独资源文件,允许在运行时动态加载和访问它。
资源文件创建
要嵌入文本文件,请按照以下准则创建资源文件 (.rc):
[resourceName id] [resourceType id] [filename]
其中:
例如:
IDR_MYTEXTFILE TEXTFILE "mytextfile.txt"
资源加载
可以使用FindResource和LoadResource等函数在代码中加载嵌入资源。示例实现可能如下所示:
void LoadFileInResource(int name, int type, DWORD& size, const char*& data) { HMODULE handle = ::GetModuleHandle(NULL); HRSRC rc = ::FindResource(handle, MAKEINTRESOURCE(name), MAKEINTRESOURCE(type)); HGLOBAL rcData = ::LoadResource(handle, rc); size = ::SizeofResource(handle, rc); data = static_cast<const char*>(::LockResource(rcData)); }
其中:
用法
然后可以在程序中访问和处理嵌入的数据,如以下代码片段所示:
// Usage example int main() { DWORD size = 0; const char* data = NULL; LoadFileInResource(IDR_MYTEXTFILE, TEXTFILE, size, data); // Access bytes in data - here's a simple example involving text output char* buffer = new char[size+1]; ::memcpy(buffer, data, size); buffer[size] = 0; // NULL terminator ::printf("Contents of text file: %s\n", buffer); // Print as ASCII text delete[] buffer; return 0; }
按照以下步骤,您可以轻松嵌入文本文件或其他数据作为资源导入到您的本机 Windows 应用程序中,确保动态访问并简化您的代码组织。
以上是如何使用 C 将文本文件嵌入到 Windows 应用程序的可执行资源中?的详细内容。更多信息请关注PHP中文网其他相关文章!