错误C2065:'Test_Proc':'Test_Proc'已存在的未声明标识符

时间:2014-03-27 16:03:11

标签: c winapi visual-c++ mfc vc6

ENV vc6.0

' Test_Proc'已经存在于' TestDlg.h'中。并且#include "TestDlg.h"在此文件中。

' Test_Proc'使用方式如下:

HINSTANCE hInstance = (HINSTANCE)GetWindowLong(hWnd,GWL_HINSTANCE);
DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_DIALOG_PRESENTTYPE), hWnd, Test_Proc,NULL);

TestDlg.cpp

#include "TestDlg.h"

BOOL WINAPI Test_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch(uMsg)
    {
        HANDLE_MSG(hWnd, WM_INITDIALOG, Test_OnInitDialog);
        HANDLE_MSG(hWnd, WM_COMMAND, Test_OnCommand);
        HANDLE_MSG(hWnd,WM_CLOSE, Test_OnClose);
    }

    return FALSE;
}

TestDlg.h

#ifndef _LOGIN_H
#define _LOGIN_H

#include <windows.h>

BOOL WINAPI Test_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
BOOL Test_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam);
void Test_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);
void Test_OnClose(HWND hwnd);

#endif

错误

C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\mm1\SearchMemberDlg.cpp(378) : error C2065: 'Test_Proc' : undeclared identifier

错误是有线的。有没有类似的经历?谢谢。

vc6.0有什么问题吗?

1 个答案:

答案 0 :(得分:2)

SearchMemberDlg.cpp必须#include "TestDlg.h"并且您应该将TestDlg.h中的包含保护从_LOGIN_H更改为TESTDLG_H_INCLUDED,否则如果您在TestDlg.h之后添加Login.h则可能会遇到问题{{1}}。