按照GDI 弟20页的例程操作后,原样输入代码,发现不能运行。
看看其他的文档后,发现:
在一开始声明 VMINT layer_hdl[2]={0};后,
在下面代码中的创建层就没必要写了,因为会发生冲突
static void draw_hello(void)
{/*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>修改后的例程
VMINT screen_width=vm_graphic_get_screen_width();
VMINT screen_height=vm_graphic_get_screen_height();
VMUINT8 *layer_buffer=NULL, *res=NULL;
VMINT size=0, handle=0;
///创建层
//layer_hdl[0]=vm_graphic_create_layer(0,0,screen_width,screen_height,-1);
//layer_hdl[1]=vm_graphic_create_layer(0,0,screen_width,screen_height,TRANS_COLOR);//第二层有穿透色
///获取基层缓冲
layer_buffer=vm_graphic_get_layer_buffer(layer_hdl[0]);
///绘制基层
vm_graphic_set_clip(0,0,screen_width,screen_height);
res=vm_load_resource("bg.gif",&size);
if(res==NULL)
{
//资源加载失败,释放系统资源,退出应用;
vm_exit_app();
return;
}
。。。。。
}
导致
//绘制第二层
vm_graphic_set_clip(0,0,240,320);
vm_graphic_textout(vm_graphic_get_layer_buffer(layer_hdl[1]),0,0,vm_ucs2_string("Hello world!"),vm_wstrlen(vm_ucs2_string("Hello World!")),VM_COLOR_RED);
中的第一个参数vm_graphic_get_layer_buffer(layer_hdl[1])失败。。。。可能是冲突了吧。
如果将创建层哪一步注释掉,就好了。
请高人指导。