我正在开发一些视频编辑软件,需要使用一些 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”添加到属性->链接器->输入附加依赖项
我在用:
- 视窗 7 64 位
- 微软视觉工作室 2012
- C++
我试过的:
错误信息:
“由于隐式依赖模块中缺少导出功能,至少有一个模块存在未解析的导入。”
显然,没有导入的函数是MFCreateDXSurfaceBuffer。您可能已经注意到 MFCreateDXSurfaceBuffer 定义为 EVR.dll,我的依赖项列表中明显没有它。
为什么函数无法导入,我该如何解决?