Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C2065未声明的标识符_C++_Directx - Fatal编程技术网

C++ C2065未声明的标识符

C++ C2065未声明的标识符,c++,directx,C++,Directx,我有个问题,但我不知道为什么。 我正在休闲学习DirectX。 我曾经配置过这个解决方案 这是我的代码: 标题: #include <d3d11.h> #include <d3dx11.h> #include <d3d10.h> #include <d3dx10.h> #include <dxgi.h> #include <Windows.h> #include <windowsx.h> #pragma com

我有个问题,但我不知道为什么。 我正在休闲学习DirectX。 我曾经配置过这个解决方案

这是我的代码:

标题:

#include <d3d11.h>
#include <d3dx11.h>
#include <d3d10.h>
#include <d3dx10.h>
#include <dxgi.h>
#include <Windows.h>
#include <windowsx.h>

#pragma comment (lib, "d3d11.lib")
#pragma comment (lib, "d3dx11.lib")
#pragma comment (lib, "d3dx10.lib")

    class HelloWorld
    {
    private: 
        IDXGISwapChain* swapchain;             
        ID3D11Device* dev;                     
        ID3D11DeviceContext* devcon; 

        LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);

    public:
        void InitD3D(HWND hWnd);    
        void CleanD3D(void);  
        int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd);
    };
}
但在编译过程中,我在swapchain、dev和devcon上遇到了一个C2065错误

我试过几件事,但都没用

如果有人能帮助我,我将不胜感激


PuK

考虑将类限定符添加到
Init3D
函数中

void InitD3D(HWND hWnd)
{
   ...
应该是:

void HelloWorld::InitD3D(HWND hWnd)
{
    ...

注意:其他函数也存在类似的问题,你很快就会发现你的WNDPROC需要特殊的处理来连接到你的C++对象。

< P>你会看到一个C++的“HeloWord”类与C样式函数混合。 作为第一步,我建议您只需删除标题,并将当前私有变量静态设置为.cpp

一旦你有工作,你可以把它总结在一个类。要将函数转换为方法,需要在.cpp中对它们进行命名,例如

void HelloWorld::InitD3D(HWND hWnd)

你最好把编译的确切错误张贴出来,成员函数的可能副本是正确的C++语句,而不是方法。(它们不具有方法的资格,因为它们没有动态调度,但是即使使用<代码>虚拟< /COD>关键字来启用动态调度,C++术语仍然是虚拟成员函数)HMM -维基百科方法条目()引用C++示例代码的“非虚拟或常规方法”。这个定义/区别是C++引用的一部分吗?我太好奇了,不让它去。浏览ISO/IEC 14882,查看“成员函数”的使用是否一致。维基百科使用通用的OO术语,但正在显示C++示例代码。因此,生活和学习(谢谢,本),可以理解的是,C++成员函数将在维基百科文章中讨论方法,因为它们是非常相似的。但非常不幸的是,维基百科甚至没有提到准确的术语。它正在发挥作用,非常感谢!现在我必须处理:错误LNK1104:无法打开“dxd3.lib”。@PuK相信我,这只是个开始,但你总有一天会学到的。祝你好运,这就是目标!我更是一个C/java开发者,但我想精简C++
void HelloWorld::InitD3D(HWND hWnd)