Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 如何将NTWDBLIB.DLL获取为64位文件_Delphi_Dll_64 Bit_Sql Server 2000 - Fatal编程技术网

Delphi 如何将NTWDBLIB.DLL获取为64位文件

Delphi 如何将NTWDBLIB.DLL获取为64位文件,delphi,dll,64-bit,sql-server-2000,Delphi,Dll,64 Bit,Sql Server 2000,我试图在我的Windows7机器上编译并运行一个非常旧的应用程序 它似乎需要SQL Server 2000中的NTWDBLIB.DLL。我可以得到那个文件,但它是一个32位的文件。当我尝试在其上运行RegServ32时,会收到一条错误消息 不允许在Windows 7上安装SQL Server 2000客户端工具 有没有办法得到这个文件?(除了制作64位虚拟机并在其上安装以获取文件之外。)我只需要将32位版本复制到SysWOW64文件夹,而不是System32文件夹 名称中有64位的文件夹用于32

我试图在我的Windows7机器上编译并运行一个非常旧的应用程序

它似乎需要SQL Server 2000中的NTWDBLIB.DLL。我可以得到那个文件,但它是一个32位的文件。当我尝试在其上运行RegServ32时,会收到一条错误消息

不允许在Windows 7上安装SQL Server 2000客户端工具


有没有办法得到这个文件?(除了制作64位虚拟机并在其上安装以获取文件之外。)

我只需要将32位版本复制到SysWOW64文件夹,而不是System32文件夹


名称中有64位的文件夹用于32位的内容,而名称中有32位的文件夹用于64位的内容,这有点蹩脚。

给出了错误消息,看起来Windows 7中的SQL Server 2000可执行文件可能有问题。我建议您安装一个较新的客户端(2005年或2008年,需要在Windows 7上运行所有必需的SP),它们仍然能够连接到SQL Server 2000服务器。

如果您尝试运行的程序是用Delphi编写的(我想一定是这样,因为我看不到您在这个问题上添加“Delphi”标记的其他原因),那么您就不需要该DLL的64位版本了。Delphi是当今唯一的32位编译器;它不能使用64位DLL。它实际上也有某种意义:WOW64代表“Win64上的Windows(32位)”。。。也就是说,64表示主机操作系统。我知道一开始会有点困惑为了添加到Deltics的注释中,出于兼容性原因,
System32
仍然被称为
System32
,而不是在64位Windows上被称为
System64
。虽然所有性能良好的应用程序都能以编程方式获取系统文件夹的路径,但我敢肯定,如果这个文件夹更改了名称,那么会有很多问题。@安德烈亚斯@ DeltTe:是的,当您考虑兼容性问题时,为什么会这么做。但有趣的是,你把64位的东西放在32文件夹里,32位的东西放在64文件夹里!有时候我希望Windows能破坏一些兼容性。因为这样很多写得不好的应用程序就会消失,他们的开发人员最终会学会编写性能良好的应用程序(或者也会消失)。遗憾的是,当您从SQLServer2000迁移时,会丢失某些类型的兼容性。具体地说,使用Delphi的旧BDE进行开发不适用于更高版本的客户端。(我安装了SQL Server 2008 R2客户端工具,但它无法工作。一旦我将旧dll放在正确的位置,它就会开始工作。)恐怕2008不再安装旧客户端。作为一个权宜之计,您可以考虑通过BDE使用ODBC。