精华内容
下载资源
问答
  • Dll hell 是指windows 上动态库新版本覆盖旧版本,但是却不兼容老版本。常常发生在程序升级之后,动态库更新,原有程序运行不起来;或者装新软件,但是已有的软件运行不起来。 同样Linux操作系统,也有同样的...

    换句话说,soname不是真实存在的文件,只是在此库中和将来调用此库的文件中保存的一个名字,在加载是去找这个名字,使用时创建一个软连接来指向真实文件,这样真实文件的版本号就可以升级了

     

    Linux 系统,也同样面临和Window一样的问题,如何控制动态库的多个版本问题。Window之前没有处理好,为此专门有个名词来形容这个问题 “Dll hell”,其严重影响软件的升级和维护。 Dll hell 是指windows 上动态库新版本覆盖旧版本,但是却不兼容老版本。常常发生在程序升级之后,动态库更新,原有程序运行不起来;或者装新软件,但是已有的软件运行不起来。 同样Linux操作系统,也有同样的问题,那么它是怎么解决的呢?

    Linux 为解决这个问题,引入了一套机制,如果遵守这个机制来做,就可以避免这个问题。 但是这只事一个约定,不是强制的。但是建议遵守这个约定,否则同样也会出现 Linux 版的Dll hell 问题。 下面来介绍一个这个机制。 这个机制是通过文件名,来控制dll (shared library) 的版本。

    Linux 上的Dll ,叫shared library,其有三个名字,分别又不同的目的。

    第一个是共享库本身的文件名(real name),其通常包含版本号,常常是是这样: libmath.so.1.1.1234 。 lib是Linux 上的库的约定前缀,math 是共享库名子,so 是共享库的后缀名,1.1.1234的是共享库的版本号,其主版本号+小版本号+build号。主板号,代表当前动态库的版本,如果动态库的接口有变化,那么这个版本号就要加1;后面的两个版本号(小版本号 和 build 号)是告诉你详细的信息,比如为一个hot-fix 而生成的一个版本,其小版本号加1,build号也应有变化。 这个文件名包含共享库的代码。

    第二个是动态库的soname( Short for shared object name),其是应用程序加载dll 时候,其寻找共享库用的文件名。其格式为

                               lib + math+.so + ( major version number)

    其只包含major version number,换句话说,也就是只要其接口没有变,应用程序都可以用,不管你其后minor build version or build version。

    问题来了,程序运行时怎么通过soname 找个real name? Soname 存在哪里?如果与real name 关联起来?什么时候存的?

    这就是接下来要介绍的第三个共享库的名字,link name,顾名思义,就是在编译过程,link 阶段用的文件名。 其将sonmae 和real name 关联起来。

    第三个名字,共享库的连接名(link name),是专门为build 阶段连接而用的名字。这个名字就是lib + math +.so ,比如libmath.so。其是不带任何版本信息的。在共享库编译过程中,连接(link) 阶段,编译器将生成一个共享库及real name,同时将共享库的soname,写在共享库文件里的文件头里面。可以用命令 readelf -d sharelibrary 去查看。

    在应用程序引用共享库时,其会用到共享库的link name。在应用程序的link阶段,其通过link名字找到动态库,并且把共享库的soname 提取出来,写在自己的共享库的头里面。当应用程序加载时候就会通过soname 去在给定的路径下寻找该共享库。

    下面通过这个代码来说明一下系统是如何做的,并且介绍系统的一些设施和工具:

    代码:        

    1. File libhello.c

    /* hello.c - demonstrate library use. */
    #include <stdio.h>
    void hello(void) 
    {  printf("Hello, library world./n");}

    2. File libhello.h

    /* libhello.h - demonstrate library use. */
    void hello(void);

    3. File main.c

    /* main.c -- demonstrate direct use of the "hello" routine */
    #include "hello.h"
    int main(void) 
    {
     hello(); 
    return 0;
    }

    1.生成共享库,关联real name 和soname 。

         gcc -g -Wall -fPIC -c hello.c -o hello.o

         gcc -shared -W,soname,-libhello.so.0 -o libhello.so.0.0.0 hello.o

         将会生成共享库libhello.so.0.0.0.

         可以用系统提供的工具查看共享库的头:

          readelf -d libhello.so.0.0.0 | grep libhello

    ox00000000000e(SONAME)    library soname: [libhello.so.0]

    2.应用程序,引用共享库。

          先手动生成link 名字,以被后面的程序链接时用

          ln -s libhello.so.0.0.0 libhello.so.0

          gcc -g -Wall -c main.c -o main.o -I.

          gcc  -o main main.o -lhello -L.

          查看编译出来的程序:

          readelf -d main | grep libhello

    ox000000000001(NEEDED)    shared library: [libhello.so.0]

          运行该程序,需要指定共享库的路径。 有两种办法,第一种使用环境变量“LD_LIBRARY_PATH”. 两外一种办法就是将共享库拷贝到系统目录(path 环境变量指定的其中一个目录)。

          暂停! 我们还没有解决一个问题是,程序只知道soname,怎么从soname 找到共享库,即real name 文件呢? 这需要我们定义一个link文件,连接到共享库本身。

          ln -s libhello.so.0.0.0 libhello.so.0

          当然这个路径需要放到LD_LIBRARY_PATH环境变量中。

         这样就可以运行该程序。

    [Note]Linux 系统提供一个命令 ldconifg 专门为生成共享库的soname 文件,以便程序在加载时后通过soname 找到共享库。 同时该命令也为加速加载共享库,把系统的共享库放到一个缓存文件中,这样可以提高查找速度。可以用下面命令看一下系统已有的被缓存起来的共享库。

         ld -p

    3.共享库,小版本升级,即接口不变.

       当升级小版本时,共享库的soname 是不变的,所以需要重新把soname 的那个连接文件指定新版本就可以。 调用ldconfig命令,系统会帮你做修改那个soname link文件,并把它指向新的版本呢。这时候你的应用程序就自动升级了。

    4.共享库,主版本升级,即接口发生变化。

      当升级主版本时,共享库的soname 就会加1.比如libhello.so.0.0.0 变为 libhello.so.1.0.0. 这时候再运行ldconfig 文件,就会发现生成两个连接 文件。

        ln -s libhello.so.0---->libhello.so.0.0.0

        ln -s libhello.so.1----->libhello.so.1.0.0

    尽管共享库升级,但是你的程序依旧用的是旧的共享库,并且两个之间不会相互影响。

        问题是如果更新的共享库只是增加一些接口,并没有修改已有的接口,也就是向前兼容。但是这时候它的主版本号却增加1. 如果你的应用程序想调用新的共享库,该怎么办? 简单,只要手工把soname 文件修改,使其指向新的版本就可以。(这时候ldconfig 文件不会帮你做这样的事,因为这时候soname 和real name 的版本号主板本号不一致,只能手动修改)。

      比如: ln -s libhello.so.0 ---> libhello.so.1.0.0

      但是有时候,主版本号增加,接口发生变化,可能向前不兼容。这时候再这样子修改,就会报错,“xx”方法找不到之类的错误。

    总结一下,Linux 系统是通过共享库的三个不同名字,来管理共享库的多个版本。 real name 就是共享库的实际文件名字,soname 就是共享库加载时的用的文件名。在生成共享库的时候,编译器将soname 绑定到共享库的文件头里,二者关联起来。 在应用程序引用共享库时,其通过link name 来完成,link时将按照系统指定的目录去搜索link名字找到共享库,并将共享库的soname写在应用程序的头文件里。当应用程序加载共享库时,就会通过soname在系统指定的目录(path or LD_LIBRARY)去寻找共享库。

    当共享库升级时,分为两种。一种是主板本不变,升级小版本和build 号。在这种情况下,系统会通过更新soname( ldconfig 来维护),来使用新的版本号。这中情况下,旧版本就没有用,可以删掉。

    另外一种是主版本升级,其意味着库的接口发生变化,当然,这时候不能覆盖已有的soname。系统通过增加一个soname(ldconfig -p 里面增加一项),使得新旧版本同时存在。原有的应用程序在加载时,还是根据自己头文件的旧soname 去寻找老的库文件。

    5.如果编译的时候没有指定,共享库的soname,会怎么样?

      这是一个trick 的地方。第一系统将会在生成库的时候,就没有soname放到库的头里面。从而应用程序连接时候,就把linkname 放到应用程序依赖库里面。或者换句话说就是,soname这时候不带版本号。 有时候有人直接利用这点来升级应用程序,比如,新版本的库,直接拷贝到系统目录下,就会覆盖掉已经存在的旧的库文件,直接升级。 这个给程序员很大程度的便利性,如果一步小心,就会调到类似windows的Dll hell 陷阱里面。建议不要这样做。

    【Note】

      1. 指定共享库加载的路径。LD_LIBRARY_PATH 优先与 path 环境变量。

      2. ldd 可以查看程序,或者共享库依赖的库的路径

      3. nm 查看共享库暴露的接口

      4. ldconfig 可以自动生成soname 的连接文件。并提供catch 加速查找。

      5.readelf 可以查看动态库的信息,比如依赖的库,本身的somae。

      6. objdump 与readelf 类似。

      7 ld The GUN linker

      8. ld.so  dynamic linker or loader

      9. as the portable GNU assembley

    【Reference】

    http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html

    展开全文
  • *.hmxz文件不到对应Help & Manual软件版本...重装后,安装相应Help & Manual软件版本只打开了源文件最初的旧版本怎么也打不开源文件最新版本了。由于文件里整理了很多资料,希望能回来。请求大神们帮忙。
  • 另外,请升级用户注意:由于软件的最新版本,在旧版本的基础上增加了新的功能,而且新旧版本的数据格式不同。在此特别强调:软件升级以后不能将老的备份数据恢复到新版本软件中。本升级程序将自动对原有的帐本信息...
  • 利用regedit删除安装软件

    千次阅读 2011-03-04 15:23:00
     晚上回去要用vpn,登陆时提示drive failure,无奈之下先到公司官网下载最新版VPN安装程序,结果安装是提示有旧版本,必须先删除。  找到旧版vpn下载程序,下载时又提示下载dll不到,无法完成...

           晚上回去要用vpn,登陆时提示drive failure,无奈之下先到公司官网下载最新版的VPN安装程序,结果安装是提示有旧版本,必须先删除。

           找到旧版vpn的下载程序,下载时又提示下载的dll找不到,无法完成下载,怎么试都没用。

           出绝招,找到vpn的安装目录,把整个文件夹全部删除,彻底,再reboot,再装新版,仍旧提示旧版存在。坏了,肯定是没删干净造成的。

           看看网上wh在,就问这种情况应该怎么办,他问我有没有用过regedit,听说过,见过别人用过,但是自己并没有亲自操刀过。为了能用vpn,我决定试试。打开注册表,按照wh的指示查找“nortel”相关字段,很快找到了一个文件夹,很兴奋的delete了,以为大功告成了,结果再reboot再试,还是不成功。再问,wh说从没说过只删除一个地方就ok了,注册表中还有很多呢,继续从“我的电脑”开始查找“nortel”字段,再小心翼翼的删除,终于再也搜不出来了。reboot,查看添加删除程序,确实看不到vpn的影子了,高兴中。再安装新版,失败,还是提示有旧版存在,无语了,真的要等到第二天问vincent吗? 算了,再试试旧版,把旧版vpn重新安装了一遍,虽然安装过程中提示有错,不过reboot后竟然可用了,真是神奇的事情!!

     

    两点经验:

    1. 如果出drive failure时,先跟wh交流交流,说不定可以直接从他那copy一个文件,就不用费1个小时时间捣鼓了;

    2. 要学会使用regedit,万不得已时,只能用这个方法来删除安装的软件,而且要记住把所有相关的字段都搜索出来。

     

     

     

     

     Karen

    展开全文
  •  友用,一款你听到名字就直觉很霸气的软件,话说它跟“友加”有什么关系?小编可以大声告诉你,它们之间最大的关系就是:没关系......笑了吗?不好笑?没事,小编相信下面的介绍会让你很开心找到一款真正有用的软件...
  • 装系统也是是废了好些时间,因为手里旧版本的系统dmg也不知道是什么原因启动时一直报error.只好网上各种dmg,结果都不行,现在看可能是我没有操作过的原因,这里记录下我的两种装系统的方法第一种是官网提示方法,...

    由于办公电脑something wrong,有个软件一直没办法run,尝试很多方法也无解,因为舍不得抹掉我的系统盘,所以只好打算重新分盘装系统,装一个副盘作为backup使用。

    装系统也是是废了好些时间,因为手里旧版本的系统dmg也不知道是什么原因启动时一直报error.

    只好网上各种找dmg,结果都不行,现在看可能是我没有操作过的原因,这里记录下我的两种装系统的方法

    第一种是官网提示方法,第二种是用time machine。

    方法一

    第一步,找到你想下载的mac 系统版本,点进去后看到第四步下载即可,这时候会跳出AppStore让你下载。

    下载好对应的系统安装包后,将其拖到Application应用程序目录下,然后打开磁盘工具,分出一个磁盘用来存放下载的系统包。分出的磁盘格式是Mac OS Extend(journal)日志拓展:

    此外,还需要分出一个磁盘,这个磁盘格式为APFS,用作存放你的新系统,前面创建的只是保存下载的系统版本包而已,并不是你最后restore的系统盘。

    打开终端,输入对应版本指令(其实是同一个命令啦,只是版本名字不一样)。

    Catalina:*

    sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume#-->保存系统包的分盘的名字喔,可别傻傻的全贴

    Mojave:*

    sudo /Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume

    然后输入密码,enter,在输个y, enter 即可。

    到这里,你的电脑本地就会有一个磁盘内含有新装的安装包dmg了。

    好了后面的都是没图了,需要自己手动操作。

    接下来,重启电脑,立马长按option进入选盘界面,选择刚刚的install xxx 磁盘enter启动,这时候会进入recovery mode,进入之后,荧幕会show一个窗口,选择第二个-->下载安装macos ,选择安装的磁盘目录为刚刚的APFS格式的分盘,按照提示进行下一步,。

    不过期间有个重要的部分是,如果你发现报错,an internect connection is requried xxx,你需要连接一个wifi or自己的手机热点。(这步很关键啦, 忘记是哪出现的了@@)

    然后就等待十几分钟就结束了,副盘系统装好了,开心~~~😄

    方法二:

    因为我有2个电脑 ,我家里面的电脑是work的(办公电脑死活跑不起来那个工具),于是我就想把自己的电脑系统备份装到我的办公电脑上面,然后再自己的办公电脑上装家里面的电脑系统。

    不过,这里需要一个usb3.0的线,或者是雷电接口type-c的数据传输线(因为我这个是电脑对电脑,如果是移动硬盘就直接格式化成mac的格式插入即可,skip 1直接从第二步开始)。

    接上线之后,在办公电脑分出一个磁盘用来存放系统,重启办公电脑(因为要把work的系统丢到办公电脑),长按T进入数据传输界面,应该会看到一个⚡️符号

    这时候,另一个电脑就会看到一个磁盘外设提示窗口出现,打开系统偏好设置找到time machine。

    ​然后,选择对应的电脑磁盘目录(注意,这个目录是你新分出来用于专门存储系统备份的磁盘喔,可千万别把东西存到你主盘 了,那就完蛋了。)

    这时候就等备份结束就好了,第一次会比较久,因为是全盘备份,等备份结束后,那个磁盘就会出现另一个系统的所有文件啦,而且格式是专门for time machine restore用的。

    ok,接下来怎么做呢,这时候办公电脑就有了另一台电脑的系统了,首先还要再分一个磁盘出来,刚刚的是time machine的磁盘,这个是副盘,用来安装restore新系统,接下来重启电脑按command+r进入recovery 模式,选择从time machine备份系统,选择你的time machine磁盘,在选择要备份restore的磁盘。(方法一,方法二都测试过没问题喔)

    更方便的是,主盘和副盘是可以相互方法文件的,也就是说,可以拿到双方的任意文件,不用来回重启选系统,还挺好的。

    展开全文
  • 01注册或登录“看看社保”软件...旧版本需要进行“社保采集”,目前新版本省去了此步骤,您只需要点击“社保认证”就好。04为什么我不到“社保卡采集”(与③不一样,请仔细分辨噢)选项?目前社保卡采集功能仅授...

    16102caafe14226742737244888026c3.gif

    01

    注册或登录“看看社保”软件时,收不到验证码怎么办?

    d4c32fe96cc9a5eeb34f6fc96dbc4824.png

    02

    我忘记了“看看社保”软件的登录密码怎么办?

    您可以尝试“一键登录”或者“短信登录”,也可以选择“找回密码”,重新设置登录密码

    03

    为什么我找不到“社保采集”选项?

    旧版本需要进行“社保采集”,目前的新版本省去了此步骤,您只需要点击“社保认证”就好。

    04

    为什么我找不到“社保卡采集”(与③不一样,请仔细分辨噢)选项?

    目前社保卡采集功能仅授权了安卓系统,IOS系统暂未授权,请尽量寻找安卓系统的手机进行“社保卡采集”。

    05

    “社保卡采集”和“社保认证”有什么区别?

    现在除了辽宁省朝阳市、甘肃省庆阳市

    其他地区不用“社保卡采集”,直接点击“社保认证”进行操作就行。

    社保卡采集:目前只针对辽宁省朝阳市、甘肃省庆阳市开放社保卡采集成功后,经当地人社部审核成功后,即可领取实体社保卡。

    社保认证:对参保人员进行“身份识别+人脸验证”,认证成功后请自行关注当地社保养老金发放时间,确认金额数量。

    06

    如何进行社保认证?

    6c41a56570b5e9aa9e65107d14bc1d14.png

    07

    如何进行社保卡采集?

    cb4995edc3912bacbdfaf05fa4cffcae.png

    08

    “社保认证”中,身份证识别时一直提示“请检查姓名是否正确”?

    ①电话联系客服帮您修改:

    拨打“400-002-1799”联系客服

    服务时间:8:30-12:0013:00-18:00

    ②添加客服微信号帮您修改:

    kankanshebao;kankankefu;kankanzhineng;kankanrenzheng(四个选一个添加就可)

    09

    “社保认证”中,身份证识别完提示:“您不在本次认证范围之内,请咨询当地社保局”怎么办?

    添加客服微信号解决:

    kankanshebao;kankankefu;kankanzhineng;kankanrenzheng(四个选一个添加就可)

    10

    “社保认证”中,特殊疾病无法配合人脸检测怎么办?

    8c6e9767f994be01977f37a6dd91d625.png

    11

    “社保认证”中,人脸检测时需要注意什么?

    697065e2a23a26576ad1c7f3dadf8971.png

    12

    “社保认证”中,提示:“手机号码不匹配”怎么办?

    ①电话联系客服:

    拨打“400-002-1799”联系客服

    服务时间:8:30-12:0013:00-18:00

    ②添加客服微信号:

    kankanshebao;kankankefu;kankanzhineng;kankanrenzheng(四个选一个添加就可)

    13

    “社保认证”中,提示“授权文件已过期”怎么办?

    请您关注“看看社保”公众号,点击左下角“软件下载”,下载最新版本“看看社保”APP,下载过程中提示的信息尽量都点击允许,下载成功后再继续进行操作。

    14

    为什么我“社保认证”成功后,收不到短信?

    d748add9452ed4ddcd126d2e0e05c429.png

    ▲注意:“社保查询”仅可查询“社保认证”是否成功,如果您想查询社保卡余额/办理社保卡/社保什么时候发放,请您咨询当地社保部门。

    15

    “社保认证”提示正在审核中怎么办?

    审核中属于正常状况,一般审核周期为1-7个工作日,请您耐心等待审核结果;如果您急需审核,可以选择:

    ①电话联系客服,帮您快速审核:

    拨打“400-002-1799”联系客服

    服务时间:8:30-12:0013:00-18:00

    ②添加客服微信号,帮您快速审核:

    kankanshebao;kankankefu;kankanzhineng;kankanrenzheng(四个选一个添加就可)

    往期精彩回顾

    ◆养老保险缴25年和30年,养老金差距超过400元不是梦

    看看社保免费送大礼包

    ◆农民工讨薪难?别急!试试这些办法

    ◆警方最新整理!这些APP都是骗钱的!

    ◆湖北3岁男童摔跤后昏迷2天!经诊断竟是中毒,罪魁祸首你家可能也有!

    1bc395120cb7318ce3a06c9f24d9b4bf.pngefed0c0add8236d5665c4bf4d7907328.gif
    展开全文
  • 2. 遇到软件使用方面困难时,请您先查看软件帮助中有没有相应提示,如果仍不能解决话请按照软件关于中联系方式联络我们,我们会在第一时间给予您协助。 【付费版本】 在试用过免费版后,如果您觉得密码管家...
  • 我只好把我电脑上15版本的发给他了,版本比较。这篇文章教大家怎么找破解包,破解汉化教程。只网上找破解软件,自己不参与破解。 软件介绍 PowerDesigner16.5破解版是一款业内领先且开发人员常用的数据库建模...
  • 6.这时软件自动添加基本头文件,因为这个程序我们不需要其他功能,所以 直接点击Next。 7.我们将base class 选为QDialog 对话框类。然后点击Next。 8.点击Finish,完成工程建立。 9.我们可以看见工程中所有...
  • 虽然DOSBOX可以模拟DOS游戏,但是不同游戏设置不同,有需要加载光碟,有需要配置好声卡参数,有游戏还需要特定DOSBOX版本才能运行。 现在有很多什么1800个dos游戏之类合集,说实话,30GB内容下载下来...
  • 然后在网上了会,发现一个HighCharts类库,一个JQuery插件,使用这个绘制出来图形挺好看,效果也令人满意,但是目前跟AJAX结合之后,highcharts制造出来内存一直没有删除,PF使用率以每秒3MB速度网上猛涨...
  • wampserver安装和使用

    2017-06-01 14:06:00
    当时没想太多就在网上随便了软件包,安装了之后却怎么都用不了,于是就开始在网上搜各种解决办法,搜各种博客,百度经验,到最后还是以失败告终,然后又开始卸载重装,反复多次之后还是不行,最终发现只是一个小...
  • 2:开解压缩,只解决一个EXE,不懂的软件整体要解压,就开始高呼去行没反应。 3:连解压都不懂的怎么使用,要远程帮助解决。 因此,通过打包程序,安装时自动处理这些问题,省掉一些基础的问题,本人也省时时间...
  • Gh0st源码+去硬盘锁

    热门讨论 2011-12-12 12:16:53
    3:怎么找不到在哪控制屏幕,跟键盘离线记录 答:在标题栏点右键,也就是系统菜单,就能看到 4:为什么有时会出现重复上线问题 答:服务端发生异常,就会重新连接创建第二个连接,但是第一个连接已经断开了,控制端在其...
  • 书中内容主要集中在大多数企业常见问题之上,如安装和升级到oracle database 11g数据库软件、创建数据库、导出和导入数据、数据库备份与恢复、性能调优,等等。  本书还提供了dba完成本职工作必备基本uniix...
  • 解决方法:试试重装豪杰超级解霸,如果重装后还会,到官方网站下载相应版本的补丁试试。还不行,只好 换就用别的播放器试试了。 例五:双击一个游戏的快捷方式,“Ox77f5cdO”指令引用“Oxffffffff”内存,该内存不能...
  • vfp6.0系统免费下载

    2009-09-17 13:49:13
    答案: Knowledge Base 是内容广泛的论文集,覆盖了如何使用产品的各种特性、已知的软件错误及其解决方案或回避的方法、以及其他有助于使用各种 Microsoft 产品的有用信息。通过以下站点可访问整个 Knowledge Base: ...
  • 至于说看哪一本,你可以对应电子书,挑一个章节试读一下,符合你胃口就选择这一本继续读下去。 如果你已经有几年编码经验,又想把代码写好,建议你多挑基本读读,吸收每本书精华。 计算机网络 学什么? ...
  • 问题3-3:为什么旧的版本教材在数据链路层一章中讲授可靠传输,但现在新的版本教材则取消了可靠传输? 问题3-4:通过普通电话用户线拨号上网时(使用调制解调器),试问一对用户线可容许多少个用户同时上网? ...
  • 并利用具体例子来全面介绍每个特性,不仅讨论了各个特性是什么,还说明了它是如何工作,如何使用这个特性来开发软件,以及有关常见陷阱。  本书面向所有oracle 数据库应用开发人员和dba。 作译者 作者  ...
  • 锁和闩,事务、并发和多版本,表和索引,数据类型,以及分区和并行,并利用具体例子来充分介绍每个特性,不仅讨论了各个特性是什么,还说明了它是如何工作,如何使用这个特性来开发软件,以及有关常见陷阱。...
  • 但有时,企业担心不到会使用AxureUX设计师,而UX设计师会排斥新工具,使得Axure普及遇到困难。这时需要外部力量来推动变革。    事实上,Axure能在UX设计师中流行起来主要有两点原因:首先,UX已成为软件...
  • ☎ IP去重,小白专用

    2020-12-02 07:23:46
    感觉还是一款不错的软件,就是比较贵……1000多,好像…… 三、把之前的3种格式,只留<strong>2种格式:111.111.111.111以及剩下的二选一! 111.111.111.111用来快速筛选,x.x....
  • 领英会员数据则覆盖了更大群体——那些等待合适机会职场人。怡安 翰威特拥有全国最大薪酬福利数据库,包含 4000 多家企业最新调研数 据,覆盖 30 多个城市和地区,60 多个细分行业,全面、准确地反映了...
  • 新版Android开发教程.rar

    千次下载 热门讨论 2010-12-14 15:49:11
    Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...
  • .htaccess

    2007-07-19 01:51:18
    一般来说,如果你的主机使用Unix或Linux系统,或任何版本的Apache网络服务器,从理论上都是支持.htaccess的,尽管你的主机服务商可能不允许你使用它。 <br>A good sign of whether your host allows .htaccess ...

空空如也

空空如也

1 2
收藏数 33
精华内容 13
关键字:

怎么找旧版本的软件