Tag: windows runtime

检测到’vccorlib_lib_should_be_specified_before_msvcrt_lib_to_linker’不匹配:值’1’与msvcrtd.lib中的值’0’不匹配

我有一个UWP的C库项目。 有一些C文件正在调用CPP文件中定义的C ++ WINRT函数。它正在成功编译并生成库文件(LIB)。 我在Visual Studio 2015中使用更新1进行编译,目标平台是10.0.10240.0 但是,我想生成DLL而不是LIB文件。 这是我更改项目所做的更改,以便生成DLL而不是LIB。 Try1:所以,在启动项目中,在配置属性=>常规我将配置从静态库更改为动态库。 在所有项目中,我从multithreading调试(/ MTd)更改为multithreading调试DLL(/ MDd)。 Try2:创建了一个新项目Windows Universal Project,并将创建LIB的项目中的所有文件添加到此项目中。 不过,我收到以下错误。 现在,我收到了错误 vccorlibd.lib(init.obj) : error LNK2038: mismatch detected for ‘vccorlib_lib_should_be_specified_before_msvcrt_lib_to_linker’: value ‘1’ doesn’t match value ‘0’ in msvcrtd.lib(app_appinit.obj) vccorlibd.lib(init.obj) : error LNK2005: __crtWinrtInitType already defined in msvcrtd.lib(app_appinit.obj) msvcrtd.lib(initializers.obj) : warning LNK4098: defaultlib ‘msvcrt.lib’ conflicts with use of other libs; […]

跨CPU体系结构从Windows 10 Universal App引用C Dlls

基本问题/摘要:我需要从Win 10通用应用程序项目中引用C中其他人创建的二进制文件(dll)。 但是,x86和arm有一个单独的dll。 我相信我需要从项目中引用dll(或至少是winmd文件)来部署它,但我只能引用一个文件而不是两个文件。 这意味着应用程序在一个平台或另一个平台(桌面或电话)上失败,因为它包含错误的二进制文件。 寻找解决方案。 更详细的解释; 我正在尝试编写通用Windows应用程序(新的Windows 10样式)。 这意味着我有一个项目可以添加对外部组件的引用。 我需要一些图像处理的东西,最好作为第三方组件购买,而不是在内部开发。 有三个SDK可以从支持WinRT的第三方获得,但没有一个专门支持UWA。 但是,WinRT SDK对Windows Phone和Windows桌面应用程序都有不同的二进制文件。 二进制文件都是从C / C ++源代码创建的。 对于较旧的“通用”应用程序来说这很好,因为有一个单独的电话和桌面项目,所以你可以在每个项目中引用不同的组件,但现在只有一个项目可以添加引用。 我问过一家供应商有关UWA的支持,他们声称这是不可能的,他们无法创建一个二进制文件来定位两个平台(arm vs x86),他们不知道我的UWA在应用程序时引用正确文件的方法是为适当的架构而构建的(这是我认为应该发生的)。 我假设有一些问题(也许是在一个winmd文件中?),’嘿,这里是不同CPU体系结构的相同dll的两个副本,选择你正在构建的那个’并且只要公共API与app匹配只是使用正确的? 这有解决方案吗? 有谁知道这种引用应该如何工作? 或者我只是运气不好? 谢谢。