私はいくつかのビデオ編集ソフトウェアに取り組んでおり、いくつかの Direct3D コンポーネントを使用してパフォーマンスを向上させる必要があります。具体的には、MFCreateDXSurfaceBuffer関数を使用して、direct3d サーフェスからサンプルを作成する必要があります。この関数を使用するコードを追加した後、コンパイルされた実行可能ファイルを実行しようとすると、次のメッセージが表示されます。
プロシージャ エントリ ポイント MFCreateDXSurfaceBuffer がダイナミック リンク ライブラリ MFPlat.dll に見つかりませんでした
出力ウィンドウ: プログラム '[0x1C04] ClassLibrary1.exe: Native' は、コード -1073741511 (0xc0000139) 'Entry Point Not Found' で終了しました。
問題を再現する最小限のプロジェクトを作成しました。
#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();
}
Properties->Linker->Input に「evr.lib;mfplat.lib;D3d9.lib」を追加しました
私は使っている:
- Windows 7 64 ビット
- MS ビジュアル スタジオ 2012
- C++
私が試したこと:
エラーメッセージ:
「暗黙的に依存するモジュールにエクスポート機能がないため、少なくとも 1 つのモジュールに未解決のインポートがあります。」
明らかに、インポートされなかった関数は MFCreateDXSurfaceBuffer でした。お気付きかもしれませんが、MFCreateDXSurfaceBuffer は EVR.dll で定義されていますが、これは私の依存関係リストには明らかにありません。
関数がインポートに失敗する理由とその修正方法を教えてください。