我有一个缓冲区:
typedef struct _MESSAGE {
UCHAR Data[];
} MESSAGE, *PMESSAGE;
用于驱动程序和用户模式应用程序之间的通信(传递参数,如 ulong)。我将它用作 UCHAR 类型。但是现在我也想用这个缓冲区发送宽字符,我应该改变它的类型吗 到 WCHAR 或 PCHAR?
什么数据类型更适合这里?
最佳答案
您不需要更改数据类型,它是通用字节(原始数据流类型)。试试看它是否有效:
typedef struct _MESSAGE {
UCHAR Data[200];
} MESSAGE_T, *PMESSAGE_T;
int byte_offset = 0; // byte offset inside your data stream
wchar_t MyMessage1[] = L"Ciao Mondo";
wchar_t MyMessage2[100];
MESSAGE_T Message;
// write message1 in the data stream
wcscpy( (wchar_t*)&Message.Data[byte_offset], MyMessage1);
// read message from the data stream
wcscpy( MyMessage2, (wchar_t*)&Message.Data[byte_offset]);
// TESTED AND WORK!
关于c++ - UCHAR 或 WCHAR 用于通信缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24268857/