繁体   English   中英

未定义对函数c ++的引用

[英]undefined reference to function c++

我对函数有未定义的引用:

Entry.cpp(程序入口):

................
ShowWindow(hWnd, nCmdShow);
DX3D_DEFS_AND_FUNC dx3d_defsnfunc;
dx3d_defsnfunc.initD3D(hWnd);
MSG msg;

while(TRUE)
{
    while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    if(msg.message == WM_QUIT)
        break;

    dx3d_defsnfunc.render_frame();
}

dx3d_defsnfunc.cleanD3D(); //undefined reference to DX3D_DEFS_AND_FUNC::CleanD3D(); 

return msg.wParam;
}

DirectX9.h:

class DX3D_DEFS_AND_FUNC

...
public:
void cleanD3D();
...

DirectX9.cpp:

    void cleanD3D()
{
    dx9_func_def.v_buffer->Release();
    dx9_func_def.d3ddev->Release();
    dx9_func_def.d3d->Release();
}

我不知道怎么了 我试图缩短代码。 说,如果您需要程序的更多代码。 谢谢。

对不起..这里有cleanD3D而不是CleanD3D。 我发帖时弄错了..仍然存在错误未定义的引用..

C ++区分大小写cleanD3D!= CleanD3D。

C ++中的函数名称区分大小写。 尝试:

dx3d_defsnfunc.CleanD3D();

函数定义缺少类名,并且大小写不正确;

void cleanD3D()
{
   ...

...应该...

void DX3D_DEFS_AND_FUNC::CleanD3D()   
{
   ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM