WNs_ACE

Results 48 comments of WNs_ACE

你的意思是,在一个触发事件中删除当前触发的事件,会导致越界的问题吗?我看了你修改的代码和 emitter_dispatch 和 emitter_remove 的代码,还是没有很明白的你意思,或者你可以给我们一个测试代码,我们这边测试一下啊?

意思是上面的例子不会有问题,下面的会出现越界?我明天试一下

上下两份代码,应该只有 __global_user_emitter_event_handler1 函数中的逻辑不一样吧?我测试了一下,反而是第一个份代码是有问题(但这个问题不是越界,而是删除 EVT_TEST_2 的节点),而第二份代码好像没有问题吧? 第二份代码中的 emitter_dispatch_simple_event(&test_emitter, EVT_TEST_2); 虽然把 test_emitter.curr_iter 和 test_emitter.remove_curr_iter 变量都改为0,但是在下面的 emitter_off(&test_emitter,event1); 删除的时候,会直接删除的,也没有出现重复删除的情况,所以我没有看到第二份代码有问题。 但是我大概明白你加这两个临时变量的意图了。

恩恩,是的,谢谢提出 bug,你提供的修复补丁应该也没有修复第一份代码的问题,我们这边研究一下怎样修改一下。

使用最新的 awtk + awtk-linux-fb 是可以通过 window_manager_resize 来实现调整分辨率的,在 linux-fb 的 lcd_linux_fb.c 文件中的 lcd_mem_linux_resize 函数会调用 fb_resize_reopen 函数来修改 fb 的分辨率,前提是板子是可以支持通过 ioctrl 来修改分辨率的。

mingw 是不能用 WinMain(或wWinMain) 作为程序入口的,只能使用 main 函数作为入口的,而原来的 main 部分的逻辑,是没有处理控制台窗口的,最新的代码会统一了 windows 下的控制台窗口的处理逻辑,可以通过 _CONSOLE 和 NDEBUG 以及程序第 3 个传参来开关控制台窗口。

我昨天测试了在 MSYS2 里的 mingw-w64-x86_64 或者直接使用 mingw64 编译入口函数为 WinMain,会在链接的时候都会出错,找不到 WinMain 函数。 我的理解在 mingw 上面就不应该有 WinMain 函数,因为 WinMain 函数是属于 windows 的东西来的。 正常来说用 vs 来编译应该可以正常编译才对的,不应该出现问题的把。

你的意思是 mingw 是有 wWinMain 函数,没有 WinMain 函数?

这个问题有可能是因为 stb 的 floor 和 ceil 函数在标准 C 类库中没有实现代码逻辑,只有函数体,你可以检查一下这两个函数,在 stb_truetype.h 文件中的第 428 行代码定义的,如果真的是这样子的话,你可以自己实现这两个函数就可以了。