odbcjt32.dll 的真实路径是什么,System32 或 SysWOW64 来检查它的参数

或水果

我正在尝试通过注册表以编程方式创建 ODBC 连接。

使用 Windows ODBC 工具时,我注意到对于 ODBC 32,“Microsoft Access Driver (*.mdb)”正在使用 odbcjt32.dll 并且注册表中的条目将指向此位置:

"Driver"="C:\\Windows\\system32\\odbcjt32.dll"

但是当我搜索该文件时,它存在,但位于其他文件夹中:

C:\Windows\SysWOW64

我需要知道为什么,因为:

  • 我需要从 C# 创建连接,我想我应该像 ODBC 工具那样将条目放到 C:\Windows\system32
  • 我想从 C# 检查这个 DLL 版本,所以我应该检查 C:\Windows\SysWOW64\odbcjt32.dll ??

Windows 中有此 DLL 的神奇重定向吗?

谢谢澄清,

马吕斯

有关SysWoW64 和 system32 的一些背景信息,请参阅超级用户问题“Windows 7 上的 System32 和 SysWOW64”所以是的,在 Windows 上有一个用于 32 位和 64 位 DLL 的“魔术重定向”。

C:\Windows\SysWOW64 中的 odbcjt32.dll 文件是 32 位版本。对于 32 位程序,路径 C:\Windows\system32\ 被重定向到 C:\Windows\SysWOW64\。您程序的当前解决方案平台是什么?x86、x64 或任何 CPU?我认为它应该是 x86 以便它可以使用 32 位驱动程序。

看看Environment.GetFolderPath方法 withEnvironment.SpecialFolder.SystemX86这样您就不需要对路径进行硬编码。

关于魔法重定向的附加信息

要查看 DLL 的位数,您可以使用dumpbin。我在下面的示例中使用“odbc32.dll”。打开Developer Command Prompt您的 Visual Studio 版本并执行以下命令:

dumpbin /headers c:\windows\syswow64\odbc32.dll

输出将包含以下行:

FILE HEADER VALUES
             14C machine (x86)

现在对system32目录中的 DLL 执行 dumpbin

dumpbin /headers c:\windows\system32\odbc32.dll

哪个输出

FILE HEADER VALUES
            8664 machine (x64)

如您所见,机器上有相同 DLL 的 x64(“64 位”)和 x86(“32 位”)版本。Windows 根据正在运行的程序的位数进行魔术重定向。64 位程序从 C:\Windows\system32 获取 DLL,32 位程序从 C:\Windows\SysWoW64 获取它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么SysWOW64被报告为System32?

来自分类Dev

为什么在64位Windows上,将64位DLL转到System32,将32位DLL转到SysWoW64?

来自分类Dev

找不到msvcr100.dll错误,但System32和SysWOW64中都存在文件msvcr100_clr0400.dll

来自分类Dev

64 位系统使用 WiX 安装程序 [SystemFolder] 属性将 dll 文件复制到 SysWOW64 而不是 system32

来自分类Dev

Inno Setup以32位模式安装到SysWOW64

来自分类Dev

Windows XP 64 上的 LoadLibrary() 在 SysWow64 中找不到 DLL,除非它在路径中?

来自分类Dev

无法使用SysWow64 / odbcad32.exe在Window 7 64位上创建ORACLE-ODBC DSN

来自分类Dev

删除c:/windows/syswow64/msxml4.dll

来自分类Dev

如何避免mkdir路径重定向到SysWOW64

来自分类Dev

访问SysWOW64

来自分类Dev

在Windows 10 64位中注册DLL而不将其移动到System32

来自分类Dev

System32 / imageres.dll的RCDATA内的奇怪图像用于什么?

来自分类Dev

调用 system32 以外的文件夹中的 dll

来自分类Dev

为什么在64位Windows操作系统上System32仍被称为System32?

来自分类Dev

64位PowerShell调用32位DLL

来自分类Dev

无法加载模块DLL C:\ WINDOWS \ system32 \ inetsrv \ rewrite.dll

来自分类Dev

使用64位regsvr32注册32位DLL

来自分类Dev

WIX 不会将 DLL 复制到 system32 文件夹中

来自分类Dev

从system32目录中删除.dll文件是否释放RAM?

来自分类Dev

安装到{sys}的文件/ DLL没有出现在C:\ Windows \ system32中

来自分类Dev

C:\ Windows \ syswow64 \ Explorer.exe是病毒吗?

来自分类Dev

Inno Setup 32位和64位dll安装

来自分类Dev

C#和PInvoke进入32/64位DLL

来自分类Java

Java Native Interface 64位系统上的32位dll

来自分类Dev

在64位服务中使用32位DLL的指针

来自分类Dev

我的64位程序如何成功调用32位DLL?

来自分类Dev

Windows应用商店DLL 32位和64位

来自分类Dev

在IDL 64位中读取32位dll文件

来自分类Dev

是否可以创建64位和32位dll?C ++

Related 相关文章

  1. 1

    为什么SysWOW64被报告为System32?

  2. 2

    为什么在64位Windows上,将64位DLL转到System32,将32位DLL转到SysWoW64?

  3. 3

    找不到msvcr100.dll错误,但System32和SysWOW64中都存在文件msvcr100_clr0400.dll

  4. 4

    64 位系统使用 WiX 安装程序 [SystemFolder] 属性将 dll 文件复制到 SysWOW64 而不是 system32

  5. 5

    Inno Setup以32位模式安装到SysWOW64

  6. 6

    Windows XP 64 上的 LoadLibrary() 在 SysWow64 中找不到 DLL,除非它在路径中?

  7. 7

    无法使用SysWow64 / odbcad32.exe在Window 7 64位上创建ORACLE-ODBC DSN

  8. 8

    删除c:/windows/syswow64/msxml4.dll

  9. 9

    如何避免mkdir路径重定向到SysWOW64

  10. 10

    访问SysWOW64

  11. 11

    在Windows 10 64位中注册DLL而不将其移动到System32

  12. 12

    System32 / imageres.dll的RCDATA内的奇怪图像用于什么?

  13. 13

    调用 system32 以外的文件夹中的 dll

  14. 14

    为什么在64位Windows操作系统上System32仍被称为System32?

  15. 15

    64位PowerShell调用32位DLL

  16. 16

    无法加载模块DLL C:\ WINDOWS \ system32 \ inetsrv \ rewrite.dll

  17. 17

    使用64位regsvr32注册32位DLL

  18. 18

    WIX 不会将 DLL 复制到 system32 文件夹中

  19. 19

    从system32目录中删除.dll文件是否释放RAM?

  20. 20

    安装到{sys}的文件/ DLL没有出现在C:\ Windows \ system32中

  21. 21

    C:\ Windows \ syswow64 \ Explorer.exe是病毒吗?

  22. 22

    Inno Setup 32位和64位dll安装

  23. 23

    C#和PInvoke进入32/64位DLL

  24. 24

    Java Native Interface 64位系统上的32位dll

  25. 25

    在64位服务中使用32位DLL的指针

  26. 26

    我的64位程序如何成功调用32位DLL?

  27. 27

    Windows应用商店DLL 32位和64位

  28. 28

    在IDL 64位中读取32位dll文件

  29. 29

    是否可以创建64位和32位dll?C ++

热门标签

归档