在Windows 8 metro应用程序中使用旧的C / C ++库

我正在尝试使用用C / C ++编写的开源库( Linphone )为Windows 8 / Windows Phone 8创建一个应用程序(在C#中)。 我尝试在VS11中导入它,但没有成功。 我有可能需要的所有.dll文件。

有没有办法在使用或不使用VS11的情况下使用此库创建我的应用程序?

谢谢。

您不能在Windows 8商店应用中使用使用旧版Visual Studio(早于Visual Studio 2012)构建的二进制文件。

原因是因为使用Visual Studio 2010构建的二进制文件将依赖于Visual Studio 2010中的C ++运行时DLL。而应用程序的其余部分是使用Visual Studio 2012编写的,因此它将依赖于C ++运行时DLL来自Visual Studio 2012.后者可以从Windowsapp store自动获得(有关详细信息,请阅读此内容)。 但是前者在Windowsapp store中不可用。 此外,您的应用无法表达对VC2010 Runtime的依赖。 在应用程序包中包含VC2010运行时DLL也将无法工作,因为该程序包将在商店上传时被拒绝。

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

你没有“导入”非托管DLL。 相反,您使用PINvoke调用其方法。

看到这个:

http://msdn.microsoft.com/en-us/magazine/cc164123.aspx