亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dll_faq.txt

?? ZIP壓縮算法源代碼,可以直接加入C++Project中編譯調用
?? TXT
?? 第 1 頁 / 共 2 頁
字號:

            Frequently Asked Questions about ZLIB1.DLL


This document describes the design, the rationale, and the usage
of the official DLL build of zlib, named ZLIB1.DLL.  If you have
general questions about zlib, you should see the file "FAQ" found
in the zlib distribution, or at the following location:
  http://www.gzip.org/zlib/zlib_faq.html


 1. What is ZLIB1.DLL, and how can I get it?

  - ZLIB1.DLL is the official build of zlib as a DLL.
    (Please remark the character '1' in the name.)

    Pointers to a precompiled ZLIB1.DLL can be found in the zlib
    web site at:
      http://www.zlib.org/

    Applications that link to ZLIB1.DLL can rely on the following
    specification:

    * The exported symbols are exclusively defined in the source
      files "zlib.h" and "zlib.def", found in an official zlib
      source distribution.
    * The symbols are exported by name, not by ordinal.
    * The exported names are undecorated.
    * The calling convention of functions is "C" (CDECL).
    * The ZLIB1.DLL binary is linked to MSVCRT.DLL.

    The archive in which ZLIB1.DLL is bundled contains compiled
    test programs that must run with a valid build of ZLIB1.DLL.
    It is recommended to download the prebuilt DLL from the zlib
    web site, instead of building it yourself, to avoid potential
    incompatibilities that could be introduced by your compiler
    and build settings.  If you do build the DLL yourself, please
    make sure that it complies with all the above requirements,
    and it runs with the precompiled test programs, bundled with
    the original ZLIB1.DLL distribution.

    If, for any reason, you need to build an incompatible DLL,
    please use a different file name.


 2. Why did you change the name of the DLL to ZLIB1.DLL?
    What happened to the old ZLIB.DLL?

  - The old ZLIB.DLL, built from zlib-1.1.4 or earlier, required
    compilation settings that were incompatible to those used by
    a static build.  The DLL settings were supposed to be enabled
    by defining the macro ZLIB_DLL, before including "zlib.h".
    Incorrect handling of this macro was silently accepted at
    build time, resulting in two major problems:

    * ZLIB_DLL was missing from the old makefile.  When building
      the DLL, not all people added it to the build options.  In
      consequence, incompatible incarnations of ZLIB.DLL started
      to circulate around the net.

    * When switching from using the static library to using the
      DLL, applications had to define the ZLIB_DLL macro and
      to recompile all the sources that contained calls to zlib
      functions.  Failure to do so resulted in creating binaries
      that were unable to run with the official ZLIB.DLL build.

    The only possible solution that we could foresee was to make
    a binary-incompatible change in the DLL interface, in order to
    remove the dependency on the ZLIB_DLL macro, and to release
    the new DLL under a different name.

    We chose the name ZLIB1.DLL, where '1' indicates the major
    zlib version number.  We hope that we will not have to break
    the binary compatibility again, at least not as long as the
    zlib-1.x series will last.

    There is still a ZLIB_DLL macro, that can trigger a more
    efficient build and use of the DLL, but compatibility no
    longer dependents on it.


 3. Can I build ZLIB.DLL from the new zlib sources, and replace
    an old ZLIB.DLL, that was built from zlib-1.1.4 or earlier?

  - In principle, you can do it by assigning calling convention
    keywords to the macros ZEXPORT and ZEXPORTVA.  In practice,
    it depends on what you mean by "an old ZLIB.DLL", because the
    old DLL exists in several mutually-incompatible versions.
    You have to find out first what kind of calling convention is
    being used in your particular ZLIB.DLL build, and to use the
    same one in the new build.  If you don't know what this is all
    about, you might be better off if you would just leave the old
    DLL intact.


 4. Can I compile my application using the new zlib interface, and
    link it to an old ZLIB.DLL, that was built from zlib-1.1.4 or
    earlier?

  - The official answer is "no"; the real answer depends again on
    what kind of ZLIB.DLL you have.  Even if you are lucky, this
    course of action is unreliable.

    If you rebuild your application and you intend to use a newer
    version of zlib (post- 1.1.4), it is strongly recommended to
    link it to the new ZLIB1.DLL.


 5. Why are the zlib symbols exported by name, and not by ordinal?

  - Although exporting symbols by ordinal is a little faster, it
    is risky.  Any single glitch in the maintenance or use of the
    DEF file that contains the ordinals can result in incompatible
    builds and frustrating crashes.  Simply put, the benefits of
    exporting symbols by ordinal do not justify the risks.

    Technically, it should be possible to maintain ordinals in
    the DEF file, and still export the symbols by name.  Ordinals
    exist in every DLL, and even if the dynamic linking performed
    at the DLL startup is searching for names, ordinals serve as
    hints, for a faster name lookup.  However, if the DEF file
    contains ordinals, the Microsoft linker automatically builds
    an implib that will cause the executables linked to it to use
    those ordinals, and not the names.  It is interesting to
    notice that the GNU linker for Win32 does not suffer from this
    problem.

    It is possible to avoid the DEF file if the exported symbols
    are accompanied by a "__declspec(dllexport)" attribute in the
    source files.  You can do this in zlib by predefining the
    ZLIB_DLL macro.


 6. I see that the ZLIB1.DLL functions use the "C" (CDECL) calling
    convention.  Why not use the STDCALL convention?
    STDCALL is the standard convention in Win32, and I need it in
    my Visual Basic project!

    (For readability, we use CDECL to refer to the convention
     triggered by the "__cdecl" keyword, STDCALL to refer to
     the convention triggered by "__stdcall", and FASTCALL to
     refer to the convention triggered by "__fastcall".)

  - Most of the native Windows API functions (without varargs) use
    indeed the WINAPI convention (which translates to STDCALL in
    Win32), but the standard C functions use CDECL.  If a user
    application is intrinsically tied to the Windows API (e.g.
    it calls native Windows API functions such as CreateFile()),
    sometimes it makes sense to decorate its own functions with
    WINAPI.  But if ANSI C or POSIX portability is a goal (e.g.
    it calls standard C functions such as fopen()), it is not a
    sound decision to request the inclusion of <windows.h>, or to
    use non-ANSI constructs, for the sole purpose to make the user
    functions STDCALL-able.

    The functionality offered by zlib is not in the category of
    "Windows functionality", but is more like "C functionality".

    Technically, STDCALL is not bad; in fact, it is slightly
    faster than CDECL, and it works with variable-argument
    functions, just like CDECL.  It is unfortunate that, in spite
    of using STDCALL in the Windows API, it is not the default
    convention used by the C compilers that run under Windows.
    The roots of the problem reside deep inside the unsafety of
    the K&R-style function prototypes, where the argument types
    are not specified; but that is another story for another day.

    The remaining fact is that CDECL is the default convention.
    Even if an explicit convention is hard-coded into the function
    prototypes inside C headers, problems may appear.  The
    necessity to expose the convention in users' callbacks is one
    of these problems.

    The calling convention issues are also important when using
    zlib in other programming languages.  Some of them, like Ada
    (GNAT) and Fortran (GNU G77), have C bindings implemented
    initially on Unix, and relying on the C calling convention.
    On the other hand, the pre- .NET versions of Microsoft Visual
    Basic require STDCALL, while Borland Delphi prefers, although
    it does not require, FASTCALL.

    In fairness to all possible uses of zlib outside the C
    programming language, we choose the default "C" convention.
    Anyone interested in different bindings or conventions is
    encouraged to maintain specialized projects.  The "contrib/"
    directory from the zlib distribution already holds a couple
    of foreign bindings, such as Ada, C++, and Delphi.


 7. I need a DLL for my Visual Basic project.  What can I do?

  - Define the ZLIB_WINAPI macro before including "zlib.h", when
    building both the DLL and the user application (except that
    you don't need to define anything when using the DLL in Visual
    Basic).  The ZLIB_WINAPI macro will switch on the WINAPI
    (STDCALL) convention.  The name of this DLL must be different
    than the official ZLIB1.DLL.

    Gilles Vollant has contributed a build named ZLIBWAPI.DLL,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲大片免费看| 精品一区二区三区免费| 日韩精品免费专区| 国产伦精品一区二区三区在线观看| 成人精品在线视频观看| 欧美福利视频一区| 中文字幕亚洲电影| 黄页网站大全一区二区| 欧美影视一区二区三区| 国产精品视频在线看| 久久99国产精品久久99果冻传媒| 91精品福利视频| 国产精品女上位| 国产资源在线一区| 精品少妇一区二区三区免费观看| 亚洲精品乱码久久久久久黑人 | kk眼镜猥琐国模调教系列一区二区| 欧美手机在线视频| 亚洲一区二区三区自拍| 97久久超碰国产精品电影| 国产亚洲成aⅴ人片在线观看 | 香蕉久久一区二区不卡无毒影院| 成人免费毛片app| 久久综合久久99| 久久电影网站中文字幕 | 91浏览器入口在线观看| 欧美激情自拍偷拍| 风间由美一区二区三区在线观看| 久久综合色播五月| 国产中文字幕精品| 久久日一线二线三线suv| 日韩高清不卡一区| 欧美放荡的少妇| 一区二区三区四区精品在线视频| 91在线视频网址| 亚洲欧美一区二区在线观看| 国产一区二区电影| 欧美韩日一区二区三区四区| 国产成人h网站| 日韩一区日韩二区| 一本一道波多野结衣一区二区| 亚洲人妖av一区二区| 在线日韩av片| 日韩av午夜在线观看| 欧美成人aa大片| 国产精品亚洲视频| 国产精品美女久久久久高潮| 色综合视频一区二区三区高清| 亚洲欧洲三级电影| 欧美性大战xxxxx久久久| 午夜精品一区在线观看| 欧美一区二区三区在线| 精品一区二区三区av| 国产精品丝袜91| 欧美无砖专区一中文字| 久久国产尿小便嘘嘘尿| 国产精品午夜春色av| 在线看国产一区| 日韩**一区毛片| 国产日本欧美一区二区| 在线视频观看一区| 久久99国产精品久久| 亚洲欧洲日本在线| 欧美性生活久久| 国产在线精品一区二区不卡了| 国产欧美一区二区精品忘忧草| a级高清视频欧美日韩| 亚洲国产裸拍裸体视频在线观看乱了| 日韩免费性生活视频播放| 国产成都精品91一区二区三| 亚洲精品va在线观看| 精品国免费一区二区三区| 成人97人人超碰人人99| 日韩在线播放一区二区| 欧美激情一区二区三区四区| 欧美精品vⅰdeose4hd| 国产精品正在播放| 婷婷激情综合网| 国产精品素人一区二区| 555www色欧美视频| 不卡一区在线观看| 久久国产精品99久久人人澡| 亚洲精品成人少妇| 国产午夜亚洲精品午夜鲁丝片| 欧美视频一区在线| 成人av网址在线观看| 免费成人小视频| 亚洲精品伦理在线| 中文字幕乱码亚洲精品一区| 日韩视频免费观看高清完整版| 91无套直看片红桃| 国产凹凸在线观看一区二区| 久久99久久99小草精品免视看| 亚洲精品国产第一综合99久久| 久久久无码精品亚洲日韩按摩| 欧美精品精品一区| 日本伦理一区二区| 91在线云播放| 国产不卡在线播放| 九色综合狠狠综合久久| 婷婷六月综合网| 亚洲一区二区三区中文字幕在线| 国产欧美日韩三级| 久久女同性恋中文字幕| 精品国产一区二区三区四区四 | 欧美一区二区在线播放| 欧美性做爰猛烈叫床潮| 99精品久久只有精品| 不卡一区二区三区四区| 不卡av免费在线观看| 国产一区二区三区黄视频 | 91色porny| 不卡一卡二卡三乱码免费网站| 国产91清纯白嫩初高中在线观看| 久久成人精品无人区| 日本三级亚洲精品| 日本成人超碰在线观看| 午夜av一区二区三区| 天天亚洲美女在线视频| 日韩—二三区免费观看av| 亚洲va国产天堂va久久en| 亚洲一区二区四区蜜桃| 亚洲国产精品一区二区www在线| 一区二区三区在线免费| 亚洲一区二区三区四区五区中文| 一二三四区精品视频| 亚洲国产视频一区| 日日噜噜夜夜狠狠视频欧美人| 日韩高清欧美激情| 激情欧美一区二区三区在线观看| 国产精品亚洲专一区二区三区| 国产成人精品网址| 91麻豆成人久久精品二区三区| 欧美性色黄大片| 日韩午夜三级在线| 国产欧美日本一区视频| 亚洲免费三区一区二区| 亚洲午夜一二三区视频| 裸体一区二区三区| 成人性生交大片免费看在线播放 | 欧美一区二区视频在线观看2022| 日韩一区二区视频在线观看| 久久综合国产精品| ●精品国产综合乱码久久久久 | 狠狠色伊人亚洲综合成人| 懂色av噜噜一区二区三区av| 91老师片黄在线观看| 欧美精品免费视频| 国产网站一区二区| 亚洲国产精品久久久男人的天堂 | 亚洲精品在线观| 国产精品久久久久久福利一牛影视| 一区二区三区日韩精品视频| 捆绑调教一区二区三区| 99久久精品免费看国产| 91精品久久久久久久99蜜桃| 国产日韩欧美麻豆| 一区二区三区在线播| 国产精品综合二区| 欧美三级电影在线看| 国产偷国产偷亚洲高清人白洁 | 日韩美一区二区三区| 亚洲视频在线一区| 久久99久久久久| 欧美性猛片aaaaaaa做受| 久久精品视频一区二区| 亚洲成在线观看| 91蜜桃婷婷狠狠久久综合9色| 日韩一区二区不卡| 亚洲午夜三级在线| jvid福利写真一区二区三区| 精品黑人一区二区三区久久 | 国产精品久久一级| 久久精品国产在热久久| 欧美少妇bbb| 亚洲欧洲制服丝袜| 国产精品2024| 日韩天堂在线观看| 亚洲亚洲精品在线观看| 99久久免费精品| 国产午夜精品久久久久久久 | 麻豆精品久久精品色综合| 欧美亚洲禁片免费| 亚洲蜜臀av乱码久久精品| 国产精品99久久久久久宅男| 日韩三级.com| 丝袜亚洲另类欧美| 91福利国产精品| 亚洲黄色在线视频| 99国产精品99久久久久久| 国产亚洲成年网址在线观看| 极品少妇xxxx精品少妇| 欧美二区乱c少妇| 天堂资源在线中文精品| 欧美视频自拍偷拍| 亚洲国产视频直播| 欧美日韩精品二区第二页| 亚洲成人自拍一区| 欧美久久久久久久久中文字幕| 亚洲高清视频在线|