首页 > 解决方案 > 有没有办法在定义结构变量之前对其进行初始化?C++

问题描述

这是我当前的代码,我有一个名为“SCENE”的结构,它包含我可以用来更改不同文件中某些 Win32 窗口的值的信息,该结构有点简单:

struct SCENE
{
    LPCWSTR SceneButtonOneText;                // Text For Button One
    SCENE* SceneButtonOneDestination;          // Next Scene To Go To When Button One Is Pressed
    LPCWSTR SceneButtonTwoText;                // Text For Button Two
    SCENE* SceneButtonTwoDestination;          // Next Scene To Go To When Button Two Is Pressed
    LPCWSTR SceneButtonThreeText;              // Text For Button Three
    SCENE* SceneButtonThreeDestination;        // Next Scene To Go To When Button Three Is Pressed
    LPCWSTR SceneButtonFourText;               // Text For Button Four
    SCENE* SceneButtonFourDestination;         // Next Scene To Go To When Button Four Is Pressed
    LPCWSTR SceneTextBoxContent;               // Text To Be Displayed Inside Of Window
    LPCSTR SceneImgDrc;                        // Directory For An BITMAP To Be Displayed Inside A Window
};

如上所示,一旦按下按钮,它将转到下一个场景,尽管在转到前一个场景时会出现问题,因为场景的变量尚未初始化,我不确定是什么在这里做,我试着做某种“结构原型”,就像你可以用函数做的那样,虽然没有用,我试着写

SCENE Scene4;
SCENE Scene5;
SCENE Scene6;
SCENE Scene6;

上面的完整代码,看看它是否可以初始化,虽然我的编译器抛出了一个关于结构重定义的错误,下面的完整代码:

// Scenes . hpp

// Includes

#include <Windows.h>

// Structures

struct SCENE
{
    LPCWSTR SceneButtonOneText;
    SCENE* SceneButtonOneDestination;
    LPCWSTR SceneButtonTwoText;
    SCENE* SceneButtonTwoDestination;
    LPCWSTR SceneButtonThreeText;
    SCENE* SceneButtonThreeDestination;
    LPCWSTR SceneButtonFourText;
    SCENE* SceneButtonFourDestination;
    LPCWSTR SceneTextBoxContent;
    LPCSTR SceneImgDrc;
};

// Prototypes



// Scenes

SCENE Scene7 = SCENE // Front Yard
{
    L"Search Bedroom",
    &Scene7,
    L"Search Kitchen",
    &Scene4,
    L"Search Living Room",
    &Scene5,
    L"Search Backyard",
    &Scene6,
    L"",
    "./Images/TatesHouseWTate.bmp"
};
SCENE Scene6 = SCENE // Backyard
{
    L"Search Bedroom",
    &Scene6,
    L"Search Kitchen",
    &Scene4,
    L"Search Living Room",
    &Scene5,
    L"Search Front Yard",
    &Scene7,
    L"",
    "./Images/TatesBackyardWTate.bmp"
};
SCENE Scene5 = SCENE // Living Room
{
    L"Search Bedroom",
    &Scene5,
    L"Search Kitchen",
    &Scene4,
    L"Search Backyard",
    &Scene6,
    L"Search Front Yard",
    &Scene7,
    L"",
    "./Images/TatesLivingRoomWTate.bmp"
};
SCENE Scene4 = SCENE // Kitchen
{
    L"Search Bedroom",
    &Scene4,
    L"Search Living Room",
    &Scene5,
    L"Search Backyard",
    &Scene6,
    L"Search Front Yard",
    &Scene7,
    L"",
    "./Images/TatesKitchenWTate.bmp"
};
SCENE Scene3 = SCENE // Waking Up
{
    L"Search Kitchen",
    &Scene4,
    L"Search Living Room",
    &Scene5,
    L"Search Backyard",
    &Scene6,
    L"Search Front Yard",
    &Scene7,
    L"",
    "./Images/TatesBedroomWTate.bmp"
};
SCENE Scene2 = SCENE // Ceiling
{
    L"Get Up",
    & Scene3,
    L"",
    & Scene2,
    L"",
    & Scene2,
    L"",
    & Scene2,
    L"",
    "./Images/CeilingFan.bmp"
};
SCENE Scene1 = SCENE // Black
{
    L"Open Eyes",
    & Scene2,
    L"",
    & Scene1,
    L"",
    & Scene1,
    L"",
    & Scene1,
    L"",
    "./Images/Black.bmp"
};
SCENE Scene0 = SCENE // Start
{
    L"",
    & Scene0,
    L"Play",
    & Scene1,
    L"Exit",
    & Scene0,
    L"",
    & Scene0,
    L"Text",
    "./Images/Image.bmp"
};

非常感谢所有帮助!谢谢!

标签: c++visual-studiovariablesstruct

解决方案


谢谢'Elijay',没想到这么容易,

extern SCENE Scene4;

工作完美!


推荐阅读