我最近更新爲Visual Studio 2012 Ultimate。我以前使用DirectX 11 2010 SDK編程,並希望繼續使用Visual Studio 2012.但是,我發現VS2012自帶DirectX SDK(在Windows Kit 8.0中),我一直在嘗試遷移我的代碼使用更新版本的d3d11。一切都很順利,直到我嘗試在我的項目中使用效果文件(.fx文件)。我必須使用VS2012編譯DirectX SDK中的Effects11 Sample,並鏈接我的項目中的lib文件。這也很好。但是,當我編譯我的項目時,函數D3DX11CreateEffectFromMemory
返回E_NOINTERFACE error (no such interface is supported)
。誰能告訴我爲什麼?請注意,我使用的是Windows Kit中的d3d11.lib和DirectX SDK中的d3dx11.lib
。也許我不應該混合他們?然而,除了效果文件創建之外,其他所有功能都可以正常工作。在Visual Studio 2012中使用DirectX Effect11
任何幫助,將不勝感激。
P.S.我不知道這是否有幫助,但只是你知道,如果我在"DirectXSDKInstallPath\lib\x86\"
的項目設置中添加一個額外的庫目錄,它的工作原理。這是爲什麼?這是否意味着我正在使用舊版本的庫?這將給出大量有關winerror.h中重新定義的標題的警告。
「Visual Studio 2012」不是一種編程語言,它是一種可與多種不同語言結合使用的開發工具。你使用什麼特定的語言?什麼是特定的代碼失敗? –
對不起,應該讓自己更清楚。我使用C++作爲編程語言。具體代碼是D3DX11CreateEffectFromMemory函數(正如vini爲我強調的那樣)。它返回一個「找不到接口」的錯誤。 – l3utterfly