【发布时间】:2014-02-04 23:29:15
【问题描述】:
我的应用程序是一个 WPF 应用程序,它已经包含用于旧类型系统 DPI 感知的代码,该代码在除 8.1 之外的所有 Windows 版本中都能正常工作。事实证明,微软在 Windows 8.1 中添加了许多功能,作为他们实现每显示器 DPI 感知的一部分。我需要在我的程序中实现代码来支持这种类型的 DPI 感知。
我的文档列出了每个显示器的 DPI 感知功能及其参数。我需要将它们导入 C# 并从我的窗口类中调用它们。但我不知道哪些 DLL 包含这些函数!例如,GetProcessDpiAwareness 函数的文档并没有指出它在哪个 DLL 中。
如何找到 DLL 中的导出内容?
【问题讨论】:
-
您确定您的代码有问题吗?它可能是你的虚拟机。你在 VMWare 中看到这个问题了吗?我有一个 WPF 窗口,如果有多个监视器,我会缩放并放置在一个非常特定的位置。在使用 VMWare 时,我发现此窗口的位置存在问题,但无法在实际的 Windows 8.1 计算机或 Parallels VM 上重现。
-
您似乎在他们的文档中发现了一个错误,它缺少告诉您要查看哪个 DLL 的标准“要求”页脚。此外,如果您转到 to the parent page,则 @ 的文本987654325@ 不像其他链接一样是可点击的链接。
-
Martin:我没有运行 VMWWare。不是这样的。
-
@ScottChamberlain:过去几天我一直在使用 Windows 8.1 Geolocation API,我认为 GetProcessDpiAwareness 文档缺少“要求”页脚的原因是因为 这是一个 Windows 8.1 API。我看过的所有 Windows 8.1 API 似乎都缺少该页脚。在 VS 2013 中,您会自动获得对所有 .NET Framework 和 Windows 函数的引用。你也可以在 VS 2012 中做到这一点。见stackoverflow.com/questions/22227263/…
-
MSDN 在线文档现在似乎也包含了函数的头文件名和库名。例如,对于
GetProcessDpiAwareness(),请参阅 msdn.microsoft.com/en-us/library/windows/desktop/dn302059.aspx。