三国群英2吧 关注:45,918贴子:1,015,453
  • 4回复贴,共1

关于多个so文件的同名函数会引起冲突的问题

只看楼主收藏回复

反编译system脚本发现,system脚本里有一个EnterBattle函数会asynccall一个叫InitializeBattle的函数,查了半天查不到这个函数
结果一想不对,查magic脚本,果然,这个InitializeBattle函数在magic里
结论是,多个so文件同名函数会冲突原来不是个BUG,是个特性,设计上就可以跨so调用函数


IP属地:美国1楼2020-08-25 23:59回复
    原来计划v0.9.6解决这个跨so同名函数的问题,是给函数名加固定前缀,比如magic.cpp编译出来的MoveCamera就会自动更名为magic_MoveCamera
    现在发现如果要支持跨so去asynccall,就得增加相应的语法特性,同时Wait和IsRunning也得增加跨so的支持,后两者还是用字符串调用的……
    所以?
    asynccall magic::MoveCamera?
    Wait("magic::MoveCamera"),然后编译器自动把双冒号替换成下划线?
    再仔细一想,这样一搞,已有的内嵌汇编会全部失灵……


    IP属地:美国2楼2020-08-26 00:05
    回复
      2026-01-15 19:00:07
      广告
      不感兴趣
      开通SVIP免广告
      同名函数冲突,谁覆盖谁,
      最终运行的哪个SO文件里的函数。


      来自Android客户端3楼2020-08-26 06:37
      收起回复
        大佬,哪篇帖子是教怎么打开Magic.SO和System.SO的,想看看源码。


        IP属地:江苏4楼2022-02-20 23:51
        回复