从LPVOID转换为全局变量 - C.

时间:2010-04-20 16:21:26

标签: c winapi struct

我正在尝试将数据从传递给我的方法的参数转换为结构,我需要将数据传递给全局变量,因为在我的应用程序的其他地方需要它。

我尝试过以下操作,但我收到错误消息称diceResult是未声明的标识符

以下是代码本身:

//Structure to hold dice data
typedef struct diceData
{
    int dice1;
    int dice2;
};

struct diceResult;

DWORD WINAPI UnpackDiceData(LPVOID sentData)
{
    //Unpack data
    struct diceData unpackedData = *((struct diceData*)sentData);

    diceResult.dice1 = unpackedData.dice1;
    diceResult.dice2 = unpackedData.dice2;
}

我不明白为什么当它显然是全球化的时候它不会认出它在那里。

1 个答案:

答案 0 :(得分:1)

typedef struct diceData
{
    int dice1;
    int dice2;
};

您的typedef没有做任何事情。通常你会使用它:

typedef struct { 
    int dice1;
    int dice2;
} diceData;

然后您可以定义该类型的实例:

diceData diceResult;

...和然后您的其他代码应该能够使用该实例。

当你有这个工作时,我的建议是重写它,以便使用全局数据。