我已经努力了几天才能弄清楚我在这个DirectX应用程序上收到的错误,正在使用DirectX SDK 2010年6月版和Visual Studio 2012中。错误:
error C2664: 'D3DXCreateTextureFromFileExW' : cannot convert parameter 12 from 'D3DXIMAGE_INFO' to 'D3DXIMAGE_INFO *'
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
这是我收到的错误消息。现在这里是它源于的代码块。
D3DXCreateTextureFromFileEx(m_pD3DDevice, L"test.png", 0, 0, 0, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_DEFAULT, D3DX_DEFAULT, D3DCOLOR_XRGB(255, 0, 255), m_imageInfo, 0, m_pTexture);
和头文件中的image_info变量。
D3DXIMAGE_INFO m_imageInfo;
我需要100%以上的信息我不知道在没有发布完整代码的情况下还有多少我没有做到这一点,因为我知道它是多么令人沮丧试着通读。
答案 0 :(得分:0)
该功能需要LPDIRECT3DTEXTURE9*
。您尝试传递的变量是IDirect3DTexture9*
。它们不是同一件事。根据这个链接
http://msdn.microsoft.com/en-us/library/windows/desktop/bb205909(v=vs.85).aspx
LPDIRECT3DTEXTURE9
被定义为IDirect3DTexture9*
。
根据这个链接:。
http://msdn.microsoft.com/en-us/library/windows/desktop/bb172802(v=vs.85).aspx
最后一个参数是LPDIRECT3DTEXTURE9*
,而不是LPDIRECT3DTEXTURE9
。因此,您需要传递IDirect3DTexture9**
,而不是IDirect3DTexture9*
。
如果有的话,我怀疑你的电话中的最后一个参数应该是&m_pTexture
。