c++ - UCHAR 或 WCHAR 用于通信缓冲区

标签 c++ c buffer

我有一个缓冲区:

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/

相关文章:

c++ - 通过模板参数选择子类和实例化成员变量的区别

c++ - 写入文件时出现堆损坏

c++ - 实现线程安全的ctime函数

javascript - 将二进制 NodeJS 缓冲区转换为 JavaScript ArrayBuffer

c++ - 如果默认构造函数不执行任何操作,其目的是什么?

从 C 中的 extern char environ 复制字符串

c - 如何确定嵌入式程序正在使用多少堆栈空间

c - 如何在c中使用mkdir创建文件夹?

android - AudioRecord 启动后返回一些空数据

c - 不清楚 stdin 输入问题