是否可以将 pnames.icu 的内容存储在 Windows C++全局变量中

Is it possible to store the contents of pnames.icu in a Windows C++ global variable?

本文关键字:存储 Windows C++ 全局变量 pnames icu 是否      更新时间:2023-10-16

我们正在考虑从PCRE正则表达式更改为ICU 正则表达式,以利用 ICU 的 UTF-8 Unicode 正则表达 式。我们已经编写了一个测试程序来加载ICU pnames.icu 文件这是编译和练习 ICU UTF-8 常规所必需的似乎正常运行的表达式。 是否可以将 pnames.icu 的内容存储在Windows中DLL 全局变量以避免将 ICU pnames.icu 传送给用户?谢谢。

首先,以与图标相同的方式将文件添加到资源脚本中。不同之处在于,您将按名称而不是整数值指定资源,并告诉资源编译器这些文件是名为"ICU"的自定义资源类型

pname1      ICU     "pname1.icu"
pname2      ICU     "pname2.icu"
pname3      ICU     "pname3.icu"

要加载资源,您首先需要按名称和类型(在本例中为 ICU)查找它。找到它后,您可以告诉窗口加载资源数据,然后"锁定"它以获取指向它的指针。

//  Find the resource
HRSRC hRes = FindResource(NULL, L"pname1", L"ICU");
//  Load the resource 
HGLOBAL hResLoad = LoadResource(NULL, hRes);
void* icuData = LockResource(hResLoad);
// ... do something with the resource @ icuData

//  We're done so let it go.
UnlockResource(icuData);