精华内容
下载资源
问答
  • 导致以前的程序都挂掉了,无法运行。 Midas.dll 可以从这里下载得到:...下载后把这个文件放到 C:\WINDOWS\system32 目录下。之前的程序在打开界面时就会出错。 转载于:https://www.cnblogs.com/AnyDelp...

     

     

    导致以前的程序都挂掉了,无法运行。

     

    Midas.dll  可以从这里下载得到:http://files.cnblogs.com/AnyDelphi/midas.rar 

     

    下载后把这个文件放到 C:\WINDOWS\system32  目录下。之前的程序在打开界面时就会出错。

     

     

    转载于:https://www.cnblogs.com/AnyDelphi/archive/2009/04/23/1442200.html

    展开全文
  • 安装j-link较新版本(JLink_Windows_V632b.exe)的驱动,每烧录一次程序报一次警告,警告如下:“The connected J-...修改了V630版本的 JLinkARM.dll ,解决了警告问题,同时能够兼容较本的IC烧写仿真,如NRF52832。
  • 获取windows版本信息的做法

    千次阅读 2015-02-28 16:58:10
    作者:朱金灿来源:http://blog.csdn.net/clever101 个人建议用 GetVersion 或GetVersionEx 之类的 API 来获取系统版本号。...所以要准确的获取版本号,我建议直接获取 kernel32.dll 的主版本号,这个是系统的版本

    作者:朱金灿

    来源:http://blog.csdn.net/clever101

     

            个人不建议用 GetVersion 或GetVersionEx 之类的 API 来获取系统版本号。注意微软也说过,这个结果会受到兼容模式的影响,即如果程序设置兼容模式为 XP 那么拿到的也可能是 5.1 的。所以要准确的获取版本号,我建议直接获取 kernel32.dll 的主版本号,这个是和系统的版本号是一样的。

     

            下面是我写的一个获取windows版本信息的两个函数,供大家参考:

    // 具体版本信息参考Operating System Version https://msdn.microsoft.com/en-us/library/ms724832.aspx
    enum enOsInfo
    {    
    OS_UNKNOWN = 0, // 未知的操作系统
    OS_WIN_NT_3_5, // win nt 4.0,1996年7月发布 
    OS_WIN_95,   // win 95
    OS_WIN_98,
    OS_WIN_ME, // windows me
        OS_WIN_2000,
    OS_WIN_XP,
    OS_WIN_XP_64, // win xp 64位
    OS_WIN_SERVER2003,
        OS_WIN_SERVER2003_R2,
    OS_WIN_VISTA,
    OS_WIN_SERVER2008,
    OS_WIN_SERVER2008_R2,
    OS_WIN7,
    OS_WIN7_64,
    OS_WIN_SERVER2012,
        OS_WIN8, //6.2
    OS_WIN8_64,
    OS_WIN_SERVER2012_R2,
    OS_WIN8_1  // 6.3
    };
    
    bool GetWindowsVersion(int& nMajorVersion,int& nMinorVersion,int& nBuildVersion,int& nReviVersion)
    {
    TCHAR szDLLName[MAX_PATH] = { 0 };
    HRESULT hr = SHGetFolderPath(NULL, CSIDL_SYSTEM, NULL, SHGFP_TYPE_CURRENT, szDLLName);
    if (SUCCEEDED(hr) && PathAppend(szDLLName, _T("kernel32.dll"))) 
    {
    DWORD dwVerInfoSize = GetFileVersionInfoSize(szDLLName, NULL);
    if (dwVerInfoSize > 0) {
    LPVOID pvVerInfoData = (LPVOID)new BYTE[dwVerInfoSize];
    if (GetFileVersionInfo(szDLLName, 0, dwVerInfoSize, pvVerInfoData)) {
    UINT ulLength = 0;
    VS_FIXEDFILEINFO* pVsInfo = NULL;
    if (VerQueryValue(pvVerInfoData, _T("\\"), (LPVOID *)&pVsInfo, &ulLength)) 
    {
    nMajorVersion = HIWORD(pVsInfo->dwFileVersionMS);
    nMinorVersion = LOWORD(pVsInfo->dwFileVersionMS);
    nBuildVersion = HIWORD(pVsInfo->dwFileVersionLS);
    nReviVersion = LOWORD(pVsInfo->dwFileVersionLS);
    delete[] pvVerInfoData;
    return true;
    }
    }
    delete[] pvVerInfoData;
    }
    }
    return false;
    }
    
    enOsInfo GetOsInfo()
    {
            enOsInfo os_info =  OS_UNKNOWN;
    
    int nMajorVersion,nMinorVersion,nBuildVersion,nReviVersion;
    if(GetWindowsVersion( nMajorVersion,nMinorVersion,nBuildVersion,nReviVersion))
    {
                switch(nMajorVersion)
    {
    case 3:
    {
                       os_info = OS_WIN_NT_3_5;
       break;
    }
    case 4:
    {
    switch(nMinorVersion)
    {
    case 0:
    os_info = OS_WIN_95;
    break;
    case 1:
    os_info = OS_WIN_98;
    break;
    case 9:
    os_info = OS_WIN_ME;
    break;
    default:
                            break;
    }
       break;
    }
    case 5:
    {
    switch(nMinorVersion)
    {
    case 0:
    os_info = OS_WIN_2000;
    break;
    case 1:
    os_info = OS_WIN_XP;
    break;
    case 2:
    {
    SYSTEM_INFO info;        //用SYSTEM_INFO结构判断64位AMD处理器   
    GetNativeSystemInfo(&info);    //调用GetSystemInfo函数填充结构   
    OSVERSIONINFOEX os;   
    os.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);     
    
    if(GetVersionEx((OSVERSIONINFO *)&os))  
    {
    if(os.wProductType==VER_NT_WORKSTATION   
    &&(info.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64||
    info.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64))  
    {  
    os_info = OS_WIN_XP_64; 
    }  
    else if(GetSystemMetrics(SM_SERVERR2)==0)  
        os_info = OS_WIN_SERVER2003; //2003年3月发布
    else if(GetSystemMetrics(SM_SERVERR2)!=0)  
    os_info = OS_WIN_SERVER2003_R2; 
    }
    break;
    }
    default:
    break;
    }
    break;
    }
        case 6:
    {
    SYSTEM_INFO info;        //用SYSTEM_INFO结构判断64位AMD处理器   
    GetNativeSystemInfo(&info);    //调用GetSystemInfo函数填充结构 
    OSVERSIONINFOEX os;   
    os.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);     
    
    if(!GetVersionEx((OSVERSIONINFO *)&os)) 
    break;
    
    switch(nMinorVersion)
    {
    case 0:
    {
    if(os.wProductType == VER_NT_WORKSTATION)  
    os_info = OS_WIN_VISTA; 
    else
    os_info = OS_WIN_SERVER2008;
    break;
    }
    case 1:
    if(os.wProductType == VER_NT_WORKSTATION) 
    {
    if(info.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64
    ||info.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64)
    os_info = OS_WIN7_64;
    else
        os_info = OS_WIN7;
    }
    else
    os_info = OS_WIN_SERVER2008_R2;
    break;
    case 2:
    {
    if(os.wProductType == VER_NT_WORKSTATION) 
    {
    if(info.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64
     ||info.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64)
    os_info = OS_WIN8_64;
    else
    os_info = OS_WIN8;
    }
    else
    os_info = OS_WIN_SERVER2012; 
    break;
    }
    case 3:
    {
    if(os.wProductType == VER_NT_WORKSTATION) 
    {
    os_info = OS_WIN8_1;
    }
    else
    os_info = OS_WIN_SERVER2012_R2;
    break;
    }
    default:
    break;
    }
    break;
    }
    default:
    break;
    }
    }
    return os_info;
    }
    

    参考文献:

     

    1.  获取操作系统位数、名称、版本名称

     

    2. GetVersionEx 如何区分win8和win8.1

    展开全文
  • ruby与mysql兼容性问题:libmySQL.dll

    千次阅读 2013-02-18 14:20:04
    Windows下,如果使用了mysql 5.1,不但在...这是由于mysql5.1里面所带的libmySQL.dll和rails不兼容(至少在2.3.5还是如此)。可以从网上下载一个旧版本的libmySQL.dll,将其放到ruby的bin目录即可。   下载地址:
      在Windows下,如果使用了mysql 5.1,不但在安装mysql.gem时候会报ri和rdoc的错误,而且在执行 rake db:migrate时候也会报错: 
    这是由于mysql5.1里面所带的libmySQL.dll和rails不兼容(至少在2.3.5还是如此)。可以从网上下载一个旧版本的libmySQL.dll,将其放到ruby的bin目录即可。 
        下载地址: 
        http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll
    展开全文
  • GDIPP项目的目标是继续开发gdi ++,扩展功能,提高性能,为当前将来的Windows版本提供更好的兼容性(可能以消除对旧Windows的兼容性为代价),创建详细的正式文档。作为帮助使用它的工具。 GDIPP项目支持32位...
  •  Dll hell 是指windows 上动态库新版本覆盖旧版本,但是却不兼容版本。常常发生在程序升级之后,动态库更新,原有程序运行不起来;或者装新软件,但是已有的软件运行不起来。 同样Linu...

    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

    展开全文
  • 7-ZIP32.DLL 是一个供第三方软件调用进行压缩7z 或解压7z 的动态链接库。 2014/6/25 Version 9.22.00.01 新增的API。 (SevenZipGetLastError...- 我可以用最好的4GB内存在64位版本Windows。 - 修正了几个错误。...
  • libmySQL.dll

    2013-02-18 14:28:20
    Windows下,如果使用了mysql 5.1,不但在安装mysql.gem时候...这是由于mysql5.1里面所带的libmySQL.dll和rails不兼容(至少在2.3.5还是如此)。可以从网上下载一个旧版本的libmySQL.dll,将其放到ruby的bin目录即可
  • 一、QT的动态链接库 QT的动态链接库编译后生成DLL...使用动态链接库可以很方便地扩展应用程序的功能,但是DLL文件需要随应用程序一起发布,并且编译DLL和应用程序的Qt版本最好保持一致,否则考虑二进制兼容问题 二...
  • 仔细看了一下,发现是系统的库版本不匹配。这个也挺有意思,没有改动什么东西为什么会这样?最后发现,原来还真是在开发平台上的微软运行时库比目标平台上的高了一个保留版本号:8.0.50727.4053 -> 8.0.50727....
  • 解决问题的网站: http://www.devside.net/wamp-server/connect-wamp-server-to-oracle-with-php-php_oci8_11g-dll 需要注意的点: 1、PHP5版本不直接兼容oci8 2、需要安装ora...
  • 1.为什么要跨平台编程?...特别注意:启动项目你的目标库一样,前者输出类型是windows应用或是控制台,后者输出类型是类库,这个才是生成dll的类型。 3.再次,右击启动项目的属性,选则bin\De
  • 需求来源 由于使用Electron使用开发桌面端,同时也需要连接硬件设备,单纯使用...dll动态库node同时都是32位,或者都是64位,一般情况下会使用32位,这样能兼容到64位系统。 node 版本<10 && Electron <
  • Windows安装cudnn

    2019-07-16 11:31:04
    运行代码过程中遇到cudnncuda版本不兼容的问题,所以需要重新安装 【解决】 1.找到对应的版本下载 2.下载之后解压缩,将.h .lib .dll 文件分别拷贝到cuda的include, lib/x64, bin 文件夹下,如果之前有直接...
  • DLL hell 是指 Windows 系统上动态库的新版本覆盖旧版本,且新版本不兼容旧版本的问题。例如:装新软件,但原有的软件运行不起来了。 Linux 系统下也同样面临着 Windows 一样的动态库多版本的问题,其严重影响...
  • windows 程序设计

    2011-07-24 21:16:30
    本书介绍了在Microsoft Windows 98、Microsoft Windows NT 4.0和Windows NT 5.0下程序写作的方法。这些程序用C语言编写并使用原始的Windows Application Programming Interface(API)。如在本章稍后所讨论的,这...
  • Windows下,如果使用了mysql 5.1,不但在...这是由于mysql5.1里面所带的libmySQL.dll和rails不兼容(至少在2.3.5还是如此)。可以从网上下载一个旧版本的libmySQL.dll,将其放到ruby的bin目录即可。 下载...
  • python3.3.5+oracle+windows

    千次阅读 2016-06-01 21:44:09
    安装文件windows,安装了有些版本不兼容,就安装了python3.3.5cx_Oracle-5.1.3-11g.win32-py3.3.exe 以及oracle监听器 把oci.dll , oraocci11.dll,oraociei11.dll放在安装目录 C:\Python33\Lib\site-packages下...
  • 与Vst2不同,使用包装的Vst3插件保存的项目在Linux daws及其Windows版本之间不兼容/不可移植,反之亦然。 LinVst3二进制文件在发布页面上(在Assets下) 有关在单个Wine进程中运行vst插件的信息,请参见LinVst3-...
  • upload windows10 version

    2020-12-08 21:12:32
    <div><p>在windows上,...Trt里的CreateEngine 形参顺序我保持了版本的一致,以兼容tensorrt-zoo的demo例程</p><p>该提问来源于开源项目:zerollzeng/tiny-tensorrt</p></div>
  • 因为NetMeeting的安装程序要检测Windows版本,所以有可能会报告不兼容,不过没关系,照常运行安装就是了。安装过程中会报告MSASN1.dll的某个函数点无法定位。 现在安装过的NetMeeting还不能运行,需要进行破解(即将...
  • DIrectX老版本

    2019-01-04 16:21:44
    Windows XP(需先安装.NET 2.0,详情请参阅“致Windows XP用户.txt”文件)、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 8.1 Update、Windows 10,同时兼容32位操作系统64位操作系统。...
  • 它旨在陪伴而不是取代它,因此不会引入不兼容性。 现在,您可以 (这是我的C&C改装服务器)上的专用讨论该项目。 生成使用(Windows) 使用“使用C ++进行桌面开发”工作负载“ VS 2017(v141)工具的C ++ ...
  • 在滚动条换肤上,SkinSharp做到了所有控件内置滚动条的换肤,并且修改控件任何风格属性,完美兼容各个控件。在菜单换肤上,SkinSharp采用独特的技术对所有菜单实行换肤,没错,是所有的菜单,包括IE控件内部菜单...
  • 包括libsvm、liblinear、Pymmseg在Linux32位64位以及windows下的支持包(dll,so文件)。 tools:提供的一些有用的工具,包括result_analysis.py等。 java:java版本的模型预测程序, 项目重要更新日志 2012/09/21 ...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 310
精华内容 124
关键字:

dll和windows版本不兼容