brew 通过资源编译器生成的brh和bar这两个文件后,程序不能加载资源。

Loner_0610 2009-12-16 01:52:51
本人正在使用SDK做一个菜单,但是一片灰白,不能显示。后来才查出是资源文件没有加载成功。
通过资源编译器生成的brh和bar文件后,在程序中加入brh,正常通过brh中的资源ID,能找到bar文件中的资源字符串。
但我的程序就是不能加载字符串。
ISHELL_LoadResString(pMe->a.m_pIShell, MAOLAPPSTART_RES_FILE, IDS_ENTRY_MAOL, pchar1, sizeof(pchar1))

该函数的返回值一直都是0,那位大哥知道小弟的问题,望告知,不胜感激。
...全文
1940 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Loner_0610 2009-12-17
  • 打赏
  • 举报
回复
我已经修改好了。谢谢楼上各位了。
将brh中的bar的路径修改为绝对路径,就可以出来了。
  • 打赏
  • 举报
回复
要用AECHAR,Unicode的编码
FLYUP_CHEN 2009-12-16
  • 打赏
  • 举报
回复
就是你分配的空间太小了,你分配的长度只有4个字节。。。
kokar 2009-12-16
  • 打赏
  • 举报
回复
int ISHELL_LoadResStringEx(IShell* piShell, const char* resFile, uint16 resid, AECHAR** dest)
{
AECHAR* pw = NULL;
int err = SUCCESS;

int cb = ISHELL_GetResStringSize(piShell, resFile, resid);

if(dest == NULL)
{
return EBADPARM;
}

if(cb)
{
pw = MALLOC((unsigned long) cb);
if(!pw)
{
err = ENOMEMORY;
}
}
else
{
err = ERESOURCENOTFOUND;
}

if(!err)
{
err = ISHELL_LoadResString(piShell, resFile, resid, pw, cb) ? SUCCESS : ERESOURCENOTFOUND;
}

if(err)
{
FREEIF(pw);
}

*dest = pw;
return err;
}

封装一下用比较好用
wishifef 2009-12-16
  • 打赏
  • 举报
回复
可能是你分配的缓冲区的字节数太小了,也就是最后一个参数太小了,只是一个字符的长度,

你改成

ISHELL_LoadResString(pMe->a.m_pIShell, MAOLAPPSTART_RES_FILE, IDS_ENTRY_MAOL, pchar1, sizeof(pchar1)*20);

试一下!

3,154

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧