当前位置: 首页 > news >正文

达州达县网站建设网络公司企业网站模板

达州达县网站建设,网络公司企业网站模板,python网站开发用什么,哈尔滨网站设计哪家好原文 我正在开发一个游戏引擎,偶然发现了一些空针问题. 考虑此简单程序: class Test {void doIt(){} } void main() {Test t;t.doIt(); }它编译,然后在Linux上使用DMD时,用11信号干掉了. 如果使用Java,甚至不会构建该程序,因为它会失败,说明从未初化它. 但我不关心分析器,我宁…

原文
我正在开发一个游戏引擎,偶然发现了一些空针问题.
考虑此简单程序:

class Test
{void doIt(){}
}
void main()
{Test t;t.doIt();
}

它编译,然后在Linux上使用DMD时,用11信号干掉了.
如果使用Java,甚至不会构建该程序,因为它会失败,说明从未初化它.

但我不关心分析器,我宁愿有个运行时错误或异常显示它,何时何地有此无效值.

我不知道有多少人在D中使用DLL开发,但它的体验远非理想,放在类中及热加载,等可能会更糟.

每当程序崩溃而没有消息时,我只需转到VisualStudio并打开exe并再次试运行它.这次也一样,它无法在程序上找到内容,相反,它得到了一个完全随机和误导性的错误消息.

确切地说,它是个空针.
是的,此时,它相当简单,但我正重构过程中,我不用数组,而是使用:
因此,化简并检查此代码:

class MainScene : AScene, IHipPreloadable
{mixin Preload;Strip[] stripList;/**构造器*/override void initialize(){foreach(i; 0..30){import hip.math.random;Strip s = new Strip();stripList~= s;//..s.pos.x = Random.range(0, 800);}}
}

重构后,得到了以下代码:

class MainScene : AScene, IHipPreloadable
{mixin Preload;Pool!Strip stripList;/**构造器*/override void initialize(){foreach(i; 0..30){import hip.math.random;stripList.get().pos.x = Random.range(0, 800);}}
}

现在,问题很明显!我需要用new Pool!Strip()初化池实例.但是当我这样做时,并不明显,(使用LDC构建)错误消息未帮助我解决问题.

除了该简单问题外,还有热加载.

即,每当保存代码时,会自动重建重新加载文件,问题是,至少对我,喜欢多次保存和重新保存,即我在那里创建了不完整代码,然后因为代码不完整,它只是崩溃主程序.
目前,没有明显方法可以控制它说"没关系,只需卸载DLL".

从一开始,使用DLL对我一直很痛苦,很难找到正确的标志,不同编译器的行为又不同,且支持不完整!

我相信现在要求某人修复DLL只会有0优先级,所以,在此我提出请求,这将使整个语言受益,远远超出当前热门的新主题.

我使用DLL并在我的引擎中热加载.
我有一个文件模块:这里,它适合Linux/Windows.

我这样设置信号处理器,非常简单:

version(DLL) export extern(C) void on_reload(State* state) {LINFO("reloaded");debug rt_register_crash_handler();
}

DLL中的此例代码:

int* test = null;
*test = 5;

会给我:

-------------------------------------------------------------------+
Received signal 'exception' (3221225477ll)
-------------------------------------------------------------------+
C:\dev\kdom\projects\game\app.d:144 - game.app.on_tick
C:\dev\kdom\projects\game\app.d:144 - game.app.on_tick
C:\dev\kdom\projects\game\app.d:144 - rt_register_crash_handler
C:\dev\kdom\projects\game\app.d:144 - BaseThreadInitThunk
C:\dev\kdom\projects\game\app.d:144 - RtlUserThreadStart
make: *** [makefile:36: game-run] Error 2816

现在我知道了代码失败的确切位置,我可修复

version(DLL) export extern(C) void on_tick(State* state) {if (state.engine.input.is_key_just_pressed(Key.KEY_SPACE)){int* test = null;*test = 5;}
}

有人做了个PR来搞类似的,但我忘记了在哪(标准库或运行时).

多谢!我会试使用它,看看能用它走多远:D

http://www.yayakq.cn/news/51800/

相关文章:

  • 郑州做网站找赢博科技手机版crm免费的
  • 那个网站做车险分期绍兴金圣建设有限公司网站
  • 公主岭网站建设规划网站的内容
  • 赤蚁网站建设网站项目流程表
  • 男女在一起做恶心的事网站企业服务公司是干嘛的
  • 个人网站设计分析sem推广是什么意思
  • 网站开发赚钱吗 知乎网站里面如何做下载的app
  • 如何创造一个自己的网站移动互联网应用的使用情况表格
  • 做公司网站详细步骤视频源网站怎么做
  • 用html5做的简单的网站受欢迎的邢台做网站
  • 邵阳做网站建设wordpress 目录模板下载
  • 樟木头仿做网站在哪查找网站的建设者
  • 南山网站公司免费制作自己的网站长
  • 学做预算有网站吗外贸怎么用网站开发新客户
  • 网站的建设需要虚拟机吗中国能源建设集团有限公司招聘网
  • 自己买服务器能在wordpress建网站百度网站建设费用怎么做账
  • 合肥网站设计哪家公司好在哪个网站做视频好赚钱
  • 合肥网站制作建设公司怎么样才可以在百度上打广告
  • 关于网站建设的折页广告网站备案 取名资讯通不过
  • 扬州市做网站巢湖做网站的公司
  • 什么软件制作网站快猎场第几集做的网站推广
  • 郑州外贸营销网站建设哪个网站可以学做蛋糕
  • 建站之星和凡科罗湖附近公司做网站建设哪家服务周到
  • .net网站源码下载好的交互设计网站
  • 常州做网站建设的公司张泽华营销
  • 可以做分销的淘客网站大王庄网站建设公司
  • 网站建设钅金手指排名软件开发培训学校软件开发培训机构
  • 怎么知道网站程序是什么做的东莞市企慕网络科技有限公司
  • 网站维护客户建设网站要花多少钱
  • 自己想做个网站 费用北京团建网站