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

酒店平台网站建设搜索引擎的设计与实现

酒店平台网站建设,搜索引擎的设计与实现,企业查询平台有哪些,ps网页制作素材请用写一段代码,让unity无声无息的崩溃。 你说这怕是有点难哦,谁会这么不幸呢?不幸的是,我幸运的成为了那个不幸的人。 unity里面调用dll的方式是使用 DllImport ,比如有一个 Hello.dll,里面有一个 char* …

请用写一段代码,让unity无声无息的崩溃。
你说这怕是有点难哦,谁会这么不幸呢?不幸的是,我幸运的成为了那个不幸的人。

unity里面调用dll的方式是使用 DllImport ,比如有一个 Hello.dll,里面有一个 char* Greet(char* name) 的方法。将 Hello.dll 放入Unity的Plugins目录下,如果没有就自己建一个,然后通过下面的代码导入dll。

[DllImport("Hello.dll")]
private extern static IntPtr Greet(byte[] name);

也可以通过 EntryPoint 来指定函数入口。

[DllImport("Hello.dll", EntryPoint = "Greet")]

嗯,一切正常。
刚开始确实很正常,直到后来有一次升级了dll,替换了部分依赖的dll,然后就GG了,dll返回的内存和预想不同,某些字节顺序被打乱了。

WTF??不是说编程没有玄学吗?

刚开始我们认为是dll本身的问题,但是经过测试发现dll本身没有问题,直接通过C#或者python调用dll,返回的内存都是正确的。这可就见鬼了,难道只有unity有问题?终究还是unity抗下了所有。

但有个奇怪的地方,只有在编辑器里运行有问题,打包出来运行也没问题。经过缜密的思考,反复实验,我们猜测是debug库release库的问题,也就是说编辑模式下得使用debug库才行。经过实验,果然如此,换成debug版本的dll,在编辑模式下也能得到正确的结果。

于是我们踩出第一个坑,某些dll在unity编辑模式下调用不正确,得换成debug版本的dll。注意,并不是所有的dll都会如此,而且大部分dll都不必如此,只有我们手动编译的FreeImage库出现了这个问题。

满心欢喜以为问题完美解决,可惜还是太年轻,福兮祸所伏,没想到还是个连环坑。使用debug库之后,调用dll时,unity直接崩溃,而且是悄无声息的,就这么退出了,不带走一片云彩。

观察 C:\Users\用户名\AppData\Local\Unity\Editor 下的 Editor.log,可以看到unity编辑器退出之前的日志。文件中记录了dll调用之后的日志,这也就是说调用dll本身并没有出错。

经过单步调试,发现是崩溃在释放内存的地方。

在VS中按F5启动调试,回到unity编辑器选择同意调试即可单步调试unity脚本。

IntPtr data = Greet(...);
Marshal.FreeHGlobal(data);

在编辑模式下,调用 Marshal.FreeHGlobal 释放dll分配的内存就会异常退出,当然,打包出来运行是正常的。

FreeHGlobal的文档链接:点击跳转。

debug模式的dll该如何释放内存,目前还没有解决,但是如果不释放,确实会导致内存占用上涨,但好歹在编辑模式下,暂且放过它吧。果然程序都是靠bug运行的。


http://www.dinnco.com/news/79587.html

相关文章:

  • 潍坊广告设计公司roseonly企业网站优化
  • 动漫制作必须会画画吗aso关键词优化计划
  • 邢台做网站可信赖热点事件
  • 帮别人做网站怎么接单cms自助建站系统
  • 我的世界是怎么做的视频网站百度官网下载安装到桌面上
  • wordpress单机版seo企业优化顾问
  • 网络设计与实施上海比较好的seo公司
  • 微信推广网站建设兰州网络优化seo
  • 建设网站都需要什么百度指数指的是什么
  • 阿里巴巴个人网站怎么做关键词排名优化工具有用吗
  • 如何批量建网站2022年新闻摘抄十条
  • 网络品牌营销方案天津关键词优化网排名
  • 主机屋安装wordpress合肥全网优化
  • 深圳建站公司服务国外搜索引擎排名百鸣
  • 网站建设 事项链接检测工具
  • 做seo推广做网站有用吗南京seo外包
  • 淘宝网站网页设计说明广州网站到首页排名
  • 发任务做任务得网站武汉百度开户电话
  • 网站章子怎么做阿里云搜索引擎网址
  • 网站域名备案号查询怎么开发网站
  • 重型机械网站开发模版公司地址怎么弄在百度上显示
  • 后缀的域名暂无法进行网站备案爱链接
  • 国外教做蛋糕的网站国外网站排名前十
  • 哪里可以做网站平台百度平台商家联系方式
  • 网乐科技网站建设网站一级域名和二级域名
  • 网络规划设计师含金量高吗深圳市seo上词贵不贵
  • 网站建设哪个软件好深圳设计公司
  • 大连做网站首选领超科技关键词免费网站
  • 商品网站怎么做网站规划与设计
  • 哪个网站可以查企业信息营销型网站建设优化建站