3

我的 win32 程序变得有点大,无法保存在一个主文件中。我的计划是将代码分成三个文件,一个用于 procs 的主文件,一个用于处理文件的文件和一个用于处理字体的文件。我在拆分文件时遇到了麻烦,我不知道应该如何包含它们才能让它们充当一个主文件。例如我的一些主要内容:

    #include <iostream>
    #include <windows.h>
    #include "resource.h"
    #include <commctrl.h>
    #include "hideconsole.h"

    #define IDC_MAIN_MDI    101
    #define IDC_MAIN_TOOL   102
    #define IDC_MAIN_STATUS 103

    #define IDC_CHILD_EDIT 101

    #define ID_MDI_FIRSTCHILD 50000

    const char szClassName[] = "MainClass";                         //window class
    const char szChildClassName[] = "ChildClass";                   //child class

    HWND g_hMDIClient = NULL;
    HWND g_hMainWindow = NULL;

//functions and procs for windows

我应该如何分离这些文件?我之前尝试过,但我无法集中精力让所有文件都可以访问主变量。谁能给我一些指示?谢谢!

4

1 回答 1

1

对于全局变量(非常量),您应该放入一个头文件:

extern HWND g_hMDIClient = NULL;
extern HWND g_hMainWindow = NULL;

您将在主 cpp 文件中保留非外部版本(它可以在任何文件中,但您最好不要移动它们)。只需将常量和宏移动到头文件中,编译器就可以自行计算出来。最后,将此头文件包含在所有 cpp 文件中。

对于函数,您需要头文件中的声明和代码文件中的定义。

头文件:

void myFunc();

代码文件:

void myFunc()
{
    // Do something
}
于 2012-10-06T19:54:31.330 回答