不能转换参数14

Error C2664: Cannot convert parameter 14

本文关键字:参数 转换 不能      更新时间:2023-10-16

我已经努力了好几天来找出我在这个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%需要更多的信息,我只是不确定有多少没有张贴整个代码在这里,我没有马上做,因为我知道它可以是多么令人沮丧的尝试和通读

该函数需要一个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