【发布时间】:2013-10-04 03:02:56
【问题描述】:
我正在开发一些视频编辑软件,需要使用一些 Direct3D 组件来提高性能。具体来说,我需要使用MFCreateDXSurfaceBuffer 函数从direct3d 表面创建样本。添加代码以使用此功能后,我在尝试运行已编译的可执行文件时收到以下消息:
在动态链接库 MFPlat.dll 中找不到过程入口点 MFCreateDXSurfaceBuffer
输出窗口:程序“[0x1C04] ClassLibrary1.exe: Native”已退出,代码为 -1073741511 (0xc0000139)“未找到入口点”。
我创建了一个重现问题的简约项目:
#include < mfapi.h >
#include < d3d9.h >
#include < evr.h >
static void
Fail
(
)
{
IDirect3DSurface9* theSurface = nullptr;
IMFMediaBuffer* theBuffer = nullptr;
MFCreateDXSurfaceBuffer(__uuidof(IDirect3DSurface9), theSurface, FALSE, &theBuffer);
}
int main()
{
Fail();
}
我将“evr.lib;mfplat.lib;D3d9.lib”添加到属性->链接器->输入附加依赖项
我正在使用:
- Windows 7 64 位
- MS Visual Studio 2012
- C++
我尝试过的:
错误信息:
“由于隐式依赖模块中缺少导出函数,至少有一个模块存在未解析的导入。”
很明显,没有导入的函数是MFCreateDXSurfaceBuffer。 您可能已经注意到 MFCreateDXSurfaceBuffer 定义为 EVR.dll,我的依赖列表中明显没有。
为什么函数导入失败,如何解决?
【问题讨论】:
标签: c++ visual-studio-2012 dll importerror ms-media-foundation