报错:函数 “LRESULT WndProc(HWND,UINT,WPARAM,LPARAM)
” 已有主体
错误分析
这个错误表明 WndProc
函数在代码里被重复定义了。通常是因为头文件被重复包含,或者在多个源文件中重复定义了该函数。
解决办法
- 检查头文件包含:确保头文件使用了预处理器指令来防止重复包含,例如:
#ifndef MY_HEADER_H
#define MY_HEADER_H// 头文件内容#endif // MY_HEADER_H
- 检查源文件:确认
WndProc
函数只在一个源文件中定义。如果在多个源文件中需要使用该函数,可将其声明放在头文件中,定义放在一个源文件中。
报错:“&”要求左值
在调用device->CreateCommittedResource函数时,对CD3DX12_HEAP_PROPERTIES和CD3DX12_RESOURCE_DESC::Buffer这两个函数调用的返回值取地址,而这些返回值是临时对象(右值),&操作符要求操作数是左值(有具体内存地址、可以被赋值的对象)。
解决办法
你需要将这些临时对象存储到局部变量中,然后再取这些局部变量的地址,这样就可以避免对右值取地址的问题。