我正试图将数据从传递到我的方法的参数强制转换为结构,我需要将数据传递到全局变量,因为在我的应用程序的其他地方需要它。
我尝试了以下操作,但出现了错误,即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;
}

我不明白为什么当它明显是全球性的时候,它不会意识到它的存在。

最佳答案

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

你的typedef什么都没做。通常你会用它,比如:
typedef struct {
    int dice1;
    int dice2;
} diceData;

然后可以定义该类型的实例:
diceData diceResult;

…然后您的其他代码应该能够使用该实例。
当你有工作时,我的建议是重写它,这样它就不会使用全局数据。

09-04 16:59