zoukankan      html  css  js  c++  java
  • 关于64bit位系统ODBC找不到的问题

    近段时间在把32位系统下编译的程序移植到Windows Server 2003 64bit 系统上时,突然发现找不到ODBC驱动,经过一番研究发现是由于64bit系统中32位的ODBC是在系统的syswow64 目录下面,且写入注册表是的节点为Wow6432Node 当运行32位的程序时是不可能找到32的ODBC驱动的,如果开发程序, 建议编译成为X86形式的, 这样就可以在64位系统正常使用ODBC,如果要通过程序创建ODBC数据源,还要将写入注册表的节点改为Wow6432Node,这样就可以在64bit 位系统中正常使用ODBC数据源了。

    在VS工具中设置编译为X86:

     

     

    通过程序创建ODBC数据源:

           RegistryKey regKey = Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("Wow6432Node").OpenSubKey("ODBC").OpenSubKey("ODBC.INI", true).CreateSubKey(dsn);
    
                string driverPath = GetDriverDllPath();
                if (string.IsNullOrEmpty(driverPath))
                {
                    return false;
                }
                string tcpIP = string.Format("host={0};port={1}", serverIP, port);
                regKey.SetValue("AutoStop", "YES");
                regKey.SetValue("Driver", driverPath);
                regKey.SetValue("CommLinks", "TCPIP{" + tcpIP + "}");
                regKey.SetValue("Debug", "No");
                regKey.SetValue("Compress", "No");
                regKey.SetValue("DisableMultiRowFetch", "No");
                regKey.SetValue("Description", description);
  • 相关阅读:
    [NOIP2017 TG D2T2]宝藏(模拟退火)
    [洛谷P1337][JSOI2004]平衡点 / 吊打XXX
    [洛谷P4940]Portal2
    [CF1073E]Segment Sum
    [CF1066C]Books Queries
    [CF1065C]Make It Equal
    [洛谷P3469][POI2008]BLO-Blockade
    网络模型 ------->MobileNet-v3
    C++--------------------->>>>>>cmakelist的编写
    C++ ----------------》》》》》cmake list的
  • 原文地址:https://www.cnblogs.com/luoht/p/1930649.html
Copyright © 2011-2022 走看看