我正在编写一个需要在Windows 7,8.x和10上运行的程序。该程序有一个依赖于仅在Windows 10上可用的Windows API的功能(相对次要)。此功能在Win7上显然不起作用,在调用这些API之前,我确保当前的操作系统是Windows 10.api-ms-win-core-winrt-string-l1-1-0.dll从您的计算机中丢失
In为了使用这些API,我不得不将VS2015项目配置为“使用Windows运行时扩展”(/ ZW)并将“目标平台版本”设置为10.0.10586.0。
但是,当我尝试在Windows 7上运行应用程序时,会导致问题。我收到一个错误对话框,提示“程序无法启动,因为api-ms-win-core-winrt-string-l1-1您的计算机中缺少“-0.dll”。我试图在Win7机器上安装VS2015可再发行组件包,但是这并没有解决问题。
关于如何让它在Win7上运行的任何想法?我真的不想改变我的所有代码来动态加载所有的Windows 10功能。
该程序是用C++编写的,而我使用的Windows API来自Windows.Devices.WifiDirect命名空间。
+0
任何API这真的是关于C#Ò而不是C++?你使用的是什么API?可能有一种解决方案适用于经典的桌面应用程序。 –
+1
仅限Windows 10应用程序的一个明显限制。不管你的善意是什么,它都行不通。 –
+1
C#程序的一个很好的功能是它只在你使用他们的代码时加载DLL。用[MethodImpl(MethodImplOptions.Noinlining)]修饰方法是最好的。但显然你不是在谈论C#,/ ZW选项是一个C++/CX编译选项。从C#调用WinRT/UWP方法也很容易,但是您必须手动编辑项目文件以添加所需的元素。现在您添加对WinRT库的引用。 –