将Win32程序拆分为多个文件

时间:2012-10-06 19:46:25

标签: winapi include

我的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

我应该如何分隔这些文件?我之前尝试过,但我无法绕过所有文件来访问主电源变量。谁能给我一些指示?谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

您将非extern版本保留在主cpp文件中(它可以在任何文件中,但您也可以不移动它们)。只需将常量和宏移动到头文件中,编译器就可以自己解决它们。最后,在所有cpp文件中包含此头文件。

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

标题文件:

void myFunc();

代码文件:

void myFunc()
{
    // Do something
}