狗灰.员理管.
?ant No,事件派发算法不支持递归派发,你在回调里面做什么也都没有用。
还有ShellExecute内部也有消息循环,所以劳资们大厅的官网按钮双击有一定概率崩,如果按键精灵必崩。
狗灰.员理管.
?ant 最后劳资实在没办法,只有在openURL里面先用EnableWindow把cocos窗口锁了,再调ShellExecute(Ex),return的时候再用EnableWindow解锁。
狗灰.员理管.
?美途王元洪 cocos源码改起来你以为那么容易吗?
洪元王途美.霸学.
没整过,理论上,可以新开一个线程来执行,
狗灰.员理管.
再说,这样劳资还避免那些手贱的用户连点弹出多个网页来。
狗灰.员理管.
开线程是我想到的第一个解决方案,但是我最后放弃掉了再研究新解决方案。
tna.员理管.
?灰狗 不明觉厉
狗灰.员理管.
?ant 还有cocos的计数引用线程不安全
ykspeeD.主群.
自己可以把 cocos 改成多线程
狗灰.员理管.
?ant 我觉得你的引擎可以参考微软COM计数引用的方法,使用原子操作进行++ --的高效加速,原子锁的现在已经进C艹11标准了,包含atomic头文件,然后用 std::atomic<基本数据类型>就可以了,比如std::atomic<int&get;就是对int类型进行原子加锁。
tnaromroC_leirbaG.酥学.
跪求高手指教, 在win32平台上在命令行中运行的cocos程序为什么看不到日志
看不到这个 狗灰.员理管.
?Gabriel_Cormorant 你在命令行里面怎可能看得到日志?
tnaromroC_leirbaG.酥学.
a ?
啊?
那要在哪里看
一般我们输出 std::cout 都可以在命令行输出啊
狗灰.员理管.
?Gabriel_Cormorant 看日志要用VS、OD或其它调试工具才能啊
tnaromroC_leirbaG.酥学.
晕, 这么设计的啊
狗灰.员理管.
?Gabriel_Cormorant std::cout是输出到控制台用当然啦,日志是输出到调试通道上,所以要用专门调试工具查看。
tnaromroC_leirbaG.酥学.
比如说 win+R 输入cmd 运行
然后cd到 Debug.win32 下, 直接跑 test.exe 为什么看不到啊
狗灰.员理管.
?Gabriel_Cormorant cmd是控制台啊,又不是调试器,怎么看得到。
tnaromroC_leirbaG.酥学.
恩恩, 我的开发环境不是vs
所以想调整一下
稍等, 找到方法了, 试一下
狗灰.员理管.
?Gabriel_Cormorant 你们是写脚本的吗?C艹那边是不是高层在管理,不给你们看,只给你们exe用的?
tnaromroC_leirbaG.酥学.
我是用C++的
狗灰.员理管.
只是个文本编辑器,那当然不能调试了。
tnaromroC_leirbaG.酥学.
嗯嗯, 我就是希望把调试信息输出到命令行
狗灰.员理管.
那我推荐你用我写的调试器,安装之后所以exe的右键菜单都会出现这个选项:

tnaromroC_leirbaG.酥学.
好的, 看到了
狗灰.员理管.
不仅仅是看程序log,程序崩溃也有提示错误信息的:

tnaromroC_leirbaG.酥学.
这是看js错误堆栈的吗
狗灰.员理管.
是C++的崩溃类型及相关数据,比如上图中的就是程序访问了0x0A9E6000非法地址。
tnaromroC_leirbaG.酥学.
嗯嗯 明白了