Visual Studio 2015中的错误在2012年消失

中国语

我在Windows 10计算机上使用英特尔媒体SDK的API版本1.19运行以下代码。

#include<stdio.h>
#include"mfxvideo++.h"

void main() {
    printf("this is a new program using intel media sdk");

    mfxSession SWsess;
    mfxVersion SWver = {0,1}, ver;
    mfxStatus sts;

    sts = MFXInit(MFX_IMPL_SOFTWARE, &SWver, &SWsess);

    if (MFX_ERR_NONE == sts) {
        MFXQueryVersion(SWsess, &ver);
        printf("Implementation version: %d.%d and API version: %d.%d", SWver.Major, SWver.Minor, ver.Major, ver.Minor);
    }

    MFXClose(SWsess);

    getchar();
}

我在Visual Studio 2015中制作了项目,但收到以下错误

严重性错误代码
说明
项目
文件路径
程序行

错误已以上述格式写入。

Error LNK1120
2 unresolved externals
ScreenCapture
~\Visual Studio\ScreenCapture\x64\Debug\ScreenCapture.exe
1

Error LNK2019
unresolved external symbol __imp_printf referenced in function main
ScreenCapture
~\Visual Studio\ScreenCapture\ScreenCapture\main.obj
1

Error LNK2019
unresolved external symbol swscanf_s referenced in function "private: bool __cdecl MFX::MFXPluginsInFS::ParseKVPair(wchar_t *,wchar_t *,class MFX::PluginDescriptionRecord &)" (?ParseKVPair@MFXPluginsInFS@MFX@@AEAA_NPEA_W0AEAVPluginDescriptionRecord@2@@Z)
ScreenCapture
~\Visual Studio\ScreenCapture\ScreenCapture\libmfx.lib(mfx_plugin_hive.obj)
1

Warning LNK4098
defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
ScreenCapture
~\Visual Studio\ScreenCapture\ScreenCapture\LINK
1

但是,在Visual Studio 2012中,上述代码运行良好。请告知我该怎么做才能将项目升级到Visual Studio 2015?

我在Visual Studio 2017RC中遇到LNK2019(请参阅此处),所以我回滚到Visual Studio 2015和2012。到目前为止,针对该论坛或其他论坛上的错误提供的解决方案对我来说一直无效。为了警告LNK4098,我无法得出要忽略哪些库的结论。

查克·沃尔本

VS 2015和VS 2017使用通用CRT,它与早期的Visual Studio CRT实现不二进制或链接兼容。一般来说,CRT在主要版本的编译器之间不兼容。

IOW:该版本的Intel Media SDK不支持VS 2015。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章