3

My win32 program has become a little to large to keep in one main file. My plan is to split the code into three files, a main file for the procs, a file to handle files and a file to handle fonts. I'm having trouble splitting the file though, i dont know how i should include them in order for them to act as one main file. For example some of my main:

    #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

how should i separate these files? i tried before but i couldnt wrap my head around getting all of the files to have access to mains variables. Could anyone give me some pointers? thanks!

4

1 に答える 1

1

グローバル変数 (非定数) については、ヘッダー ファイルに入れる必要があります。

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

非 extern バージョンは、メインの cpp ファイルに残します (ファイルは任意のファイルにある可能性がありますが、移動しない方がよいでしょう)。定数とマクロをヘッダー ファイルに移動するだけで、コンパイラは独自にそれらを把握できます。最後に、このヘッダー ファイルをすべての cpp ファイルに含めます。

関数の場合、ヘッダー ファイルでの宣言とコード ファイルでの定義が必要です。

ヘッダー ファイル:

void myFunc();

コードファイル:

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