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

时间:2012-10-15 10:51:19

标签: c# windows-8 microsoft-metro

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

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

感谢。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:-1)

您没有“导入”非托管dll。相反,您使用PINvoke调用他们的方法。

见:

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