【发布时间】:2020-04-03 05:07:59
【问题描述】:
我正在尝试使用 C++ 中的 Visual Studio 构建一个 64 位应用程序
我需要访问 Windows 目录中的Sens.dll。 由于 Visual Studio 是 32 位应用程序,我必须使用 SysNative 而不是 System32
#import "C:/Windows/SysNative/Sens.dll"
因为文件系统重定向。
如果我将路径更改为 C:/Windows/System32/Sens.dll,Visual Studio 将无法访问它,因为它在构建时重定向到 SysWOW64。为了缓解这种情况,我可以使用SysNative,但生成的可执行文件是 64 位应用程序,SysNative 无法访问。
有什么办法可以解决吗?
File System Redirector 中给出了对 SysNative 更好的解释
【问题讨论】:
-
使用的路径在哪里?我看不到 VS 配置中的路径和您的应用程序中的路径如何相互关联,因为它们必须单独设置。并且不要链接到这样的外部资源。改为链接到official documentation
-
我正在尝试导入 Sens.dll 这些路径用作
#import "C:/windows/system32/sens.dll" -
这仍然没有解释路径如何相互关联。如果您手动加载 DLL,则 VS 不会读取代码中的路径。如果您让 Windows 自动加载 DLL,那么您的应用程序对 DLL 路径一无所知(并且它不需要知道这一点)。你需要展示真实的设置
-
使用 sysnative 就好了,#import 指令只在编译时有影响。所以你真正的问题与它无关,不管它是什么。
标签: c++ visual-studio 32bit-64bit include-path