我在下面写了一段代码,我坚持下去。我以前用不同的编译器做过,现在我正在转向 Visual C++。每次这个函数试图被调用时,都会弹出这个错误:
SeaQuest.exe 中 0x0076e124 处的未处理异常:0xC0000005:访问冲突写入位置 0xccccccd0。
此外,我已经正确编写了 D3DXGetImageInfoFromFileA 的语法。
class Texture
{
private:
D3DXIMAGE_INFO m_ImageInfo;
public:
bool GetImageInfo(char* filename);
};
bool Texture::GetImageInfo(char* filename)
{
if((D3DXGetImageInfoFromFileA(filename, &m_ImageInfo)) != D3D_OK)
return false;
}
我还跟踪了 DirectX 调试输出,但它没有显示任何内容。
更新
现在,我在 GetImageInfo 的实现中定义了一个 D3DXIMAGE_INFO 局部变量,并使用它来代替 m_ImageInfo。有用!。我不知道我的私人会员有什么问题会因此而Access violation writing
增加。希望有人指导我。
回答
我在另一个类中使用 Texture 类作为指针变量,原因是没有实例化指向新 Texture 类的指针,或者我可以使用非指针变量然后将类复制到其中但失去了引用的好处。0xC0000005
接近 0,因此这意味着它正在尝试寻址一个 NULL 指针。我会记住的,希望你也会!