我正在尝试将数据从传递到我的方法的参数转换为结构,我需要将数据传递到全局变量,因为它在我的应用程序的其他地方需要。
我已经尝试了以下但我收到错误提示 diceResult
is an undeclared identifier
这是代码本身:
//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;
...然后您的其他代码应该能够使用该实例。
当你让它工作时,我的建议是重写它,使其不使用全局数据。
关于从 LPVOID 转换为全局变量 - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2676804/