1

我有一个使用VC++ 2010构建的C++库。我有这个库的头文件,导入库和DLL。我想在我的Windows 8商店应用程序中使用该库,我试图使用VC++ 2012进行构建。我的应用程序在本地机器上正常工作,但是当我尝试在远程Windows 8设备上运行此应用程序时,应用程序无法加载。我究竟做错了什么?在Windows 8商店应用程序(使用Visual C++ 2012构建)中使用C++库(使用Visual C++ 2010构建)

回答

2

在Windows 8商店应用程序中,不能使用使用较旧版本的Visual Studio(比Visual Studio 2012更早)构建的C++二进制文件。

原因是因为使用Visual Studio 2010构建的二进制文件将依赖于Visual Studio 2010中的C++ Runtime DLL。而其他应用程序是使用Visual Studio 2012编写的,因此它将具有依赖关系来自Visual Studio 2012的C++运行时DLL。后者可以从Windows应用商店自动获取(有关更多详细信息,请参阅this)。但前者在Windows应用商店中不可用。此外,您的应用无法表达对VC2010 Runtime的依赖。在应用程序包中包含VC2010运行时DLL也不起作用,因为该包会在商店上传时被拒绝。

因此,最好的选择是严格使用Visual Studio 2012为您的Windows 8商店应用程序构建所有源代码。

+0

嗯,不是真的。用/ MT代替/ MD编译。或者在应用程序包中包含msvcr100.dll。 –

+1

VC10 DLL不符合WACK标准,因此应用程序包将在包上传时被拒绝。 –

相关问题