c - 错误 C2065 : 'Test_Proc' : undeclared identifier which 'Test_Proc' already exists

标签 c winapi visual-c++ mfc visual-c++-6

环境 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有问题?

最佳答案

SearchMemberDlg.cpp 必须 #include "TestDlg.h" 并且您应该将 TestDlg.h 中的 include guard 从 _LOGIN_H 更改为 TESTDLG_H_INCLUDED ,否则如果在 Login.h 之后包含 TestDlg.h 可能会出现问题。

关于c - 错误 C2065 : 'Test_Proc' : undeclared identifier which 'Test_Proc' already exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22693047/

相关文章:

c++ - VC++创建多个Excel工作表

c++ - Visual C++ 应用程序中的 SQL Server 数据库

c - 如何在忽略区分大小写和标点符号的情况下检查 C 中的回文?

c - 堆栈分配给线程

c++ - 试图解释 Windows 操作系统上的用户 session 状态

windows - 如何在 Windows 8 桌面中扫描低功耗蓝牙设备?

c - C语言循环中出现malloc/free时的Segmentation fault

c - 在C中初始化结构内部的数组

c++ - 在 union 中访问结构

c++ - 返回一个 long long 值