• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            woaidongmao

            文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數據加載中……

            lua5.1.dll 和 lua51.dll

            今天下載lua的Windows二進制發布luabinaries 的時候,發現luabinaries的發布包含兩個dll,lua5.1.dll,lua51.dll,其中lua5.1.dll大小合適,lua51.dll只有11K,感覺不像是個有用的lua dll,對此比較不解,查看了luabinaries的文檔,
            文檔中如此解釋:
            The LuaBinaries DLL packages have a dll proxy called "lua51.dll". It can be used to replace other "lua51.dll" released by other distributions. It will simply forward calls to the "lua5.1.dll". There is no compiled source code involved in the forwarding.
            也就是說,lua51.dll完全是一個lua5.1.dll的代理類,沒有任何實際的代碼,僅僅是做一個到lua5.1.dll的forwarding。
                不過文檔解釋了lua51.dll是什么,卻沒有解釋為啥會需要一個這樣的東西呢?我還從來沒有見過類似的情況。要說有一點點類似的情況的話,也是以前做反外掛的時候,知道可以通過替換現有的dll,并且完全模擬原來dll的接口,并將不需要hack的函數全部forwarding到原來的dll中。對于lua怎么會需要這樣的功能呢?
            于是我google了一下,發現了原因:
            The standard DLL name "lua51.dll" has been selected more than
            three years ago. Around twice every year someone comes along and
            thinks "Oh, we absolutely need a dot in the DLL version number".

            Alas, Windows does not like an extra dot in there. Many things
            break when you have an extra dot in DLL names. Depends on the
            version of the OS, on the specific system call, on the library or
            tool used ... it's hopeless. So please let's forget about it.

            --Mike
            來自lua-users.org的一個帖子 。
            原來是3年前有人確定了一個lua51.dll名字的動態庫,并且,有人覺得我們非常需要在5和1之間加一個點,不然lua的5.1版豈不是看成lua的51版了?
            對此,有人進一步提出了疑問 ,認為這個問題怎么這么久了竟然沒有人修復?
            接著有人回答了:
            But who's duty is to resolve the issue?

            It's clearly not an issue of Lua as a language. It's just a consequence of (a very popular) LuaBinaries once releasing lua5.1.dll that became a de facto binary standard, then authors of many third-party Lua libraries were releasing binary packages compatible with LuaBinaries.
            Note: I'm not blaming LuaBinaries; that was just one unfortunate decision that is difficult to be undone. --
            Shmuel

            我們知道了:
            LuaBinaries做出了一個錯誤的決定,但是已經發布了,很多第3方的庫也發布了,并且依賴于LuaBinaries的這個lua51.dll,于是:
            that was just one unfortunate decision that is difficult to be undone.
            那僅僅是一個過去做下,現在難以撤銷的不幸決定。。。。。。。。。。。。

                有的東西存在了,即使是不合理的存在,因為它存在了一段時間了,因為慣性,它還會存在在那里。編程中,這種情況經常出現。突然讓我想起上個項目中,大家經常對項目中蹩腳代碼存在原因的解釋:“歷史原因”。
                對于代碼來說,即使大家都知道可以重構,但是重構是有代價的,很多時候大家就妥協在歷史原因當中。
                對于語言來說,C++就是對歷史進行最大妥協而產生的語言,大家都承認,假如當年C++不兼容C的話,C++根本就得不到現在這樣的流行程度,也都承認,因為C++兼容C,(常常被稱為歷史的包袱)C++在語言的優美程度上損失了太多。
                想起國內某個大牛有過類似的感慨,“現在每做一個設計決定的時候都非常小心,因為那可能會被使用非常非常長的時間,當它還能正常工作的時候,甚至不會有人想要去重寫它“
                呵呵,僅僅將這個有趣的事件作為編程中的一個軼事來看吧。

            本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/vagrxie/archive/2010/07/23/5756804.aspx

            posted on 2010-12-27 12:37 肥仔 閱讀(2932) 評論(2)  編輯 收藏 引用 所屬分類: 腳本語言

            評論

            # re: lua5.1.dll 和 lua51.dll  回復  更多評論   

            我在src下的makefile中就只找到LUA5.1.dll,原來是這樣呀,還以為必須有LUA51.dll呢。感謝樓主共享。
            2011-01-02 08:14 | using9
            97精品国产91久久久久久| 国产免费久久精品99久久| 亚洲人成精品久久久久| 久久久精品人妻一区二区三区四| 久久国产色AV免费观看| 无码任你躁久久久久久| 国产成人久久AV免费| 亚洲国产成人久久综合碰| 国产精品久久国产精品99盘| 亚洲午夜精品久久久久久app| 亚洲狠狠婷婷综合久久久久| 精品人妻伦九区久久AAA片69 | 国产91久久综合| 伊人久久精品无码二区麻豆| 久久久91精品国产一区二区三区| 亚洲综合久久夜AV | 国产精品久久久天天影视香蕉| 久久婷婷五月综合色奶水99啪| 久久se精品一区精品二区国产| 久久精品国产亚洲AV大全| 超级97碰碰碰碰久久久久最新| 91久久精品国产免费直播| 国产午夜免费高清久久影院| 亚洲中文字幕无码一久久区| 久久精品国产99国产精品导航| 精品久久久久久无码中文字幕| 97久久精品人人澡人人爽| 免费观看成人久久网免费观看| 久久精品国产第一区二区三区| 亚洲成色WWW久久网站| 久久天天躁狠狠躁夜夜躁2014| 亚洲伊人久久综合影院| 久久综合九色综合久99| 久久一区二区三区99| 色播久久人人爽人人爽人人片aV| 久久99精品国产99久久6| 精品99久久aaa一级毛片| 久久有码中文字幕| 国产一区二区久久久| 国产成人精品综合久久久久| 欧洲精品久久久av无码电影|