asi*_*sif 5 c++ dll embedded-resource
我有一个c ++ dll项目,其中,我通过"resource.rc"文件嵌入了一些原始数据.
IDR_TEMPLATE1 RCDATA "areaTemplate.bin"
Run Code Online (Sandbox Code Playgroud)
现在我想从dll访问"areaTemplate.bin"文件的数据.如何在字节数组中读取"areaTemplate.bin"的内容?
首先使用FindResource或FindResourceEx,然后使用LoadResource和LockResource。
使用SizeofResource获取数据的大小。
代码:
HMODULE g_hModDll;
[...]
HRSRC hRscr = FindResource( g_hModDll, MAKEINTRESOURCE( IDR_TEMPLATE1 ),
MAKEINTRESOURCE( RT_RCDATA ) );
if ( hRscr ) {
HGLOBAL hgRscr = LoadResource( g_hModDll, hRscr );
if ( hgRscr ) {
PVOID pRscr = LockResource( hgRscr );
DWORD cbRscr = SizeofResource( g_hModDll, hRscr );
}
}
Run Code Online (Sandbox Code Playgroud)
请务必阅读以下有关 LoadResource 的注释:
备注LoadResource 的返回类型是 HGLOBAL 是为了向后兼容,而不是因为该函数返回全局内存块的句柄。不要将此句柄传递给 GlobalLock 或 GlobalFree 函数。
没有“解锁资源”或“免费资源”API。
备注LockResource 返回的指针在包含该资源的模块被卸载之前一直有效。无需解锁资源,因为当创建资源的进程终止时,系统会自动删除它们。
| 归档时间: |
|
| 查看次数: |
3159 次 |
| 最近记录: |