如何在Rust中创建末尾为可变长数组的LOGPALETTE结构体?
Rust中实现动态LOGPALETTE结构体的方法
我尝试在Rust中创建动态的LOGPALETTE结构体,该结构体的最后一个字段名义上声明为1个元素的数组,但实际上可以是任意长度的数组,我们在堆上分配结构体时指定元素数量。
以下是我在C语言中的实现方式:
PALETTEENTRY entry = {0}; LOGPALETTE* pLogPal = (LOGPALETTE*)malloc( sizeof(LOGPALETTE) + 2 * sizeof(PALETTEENTRY) // 预留2个元素的空间 ); pLogPal->palNumEntries = 2; // 声明包含2个元素 pLogPal->palPalEntry[0] = entry; // 填充2个元素 pLogPal->palPalEntry[1] = entry; // 使用pLogPal... free(pLogPal);
考虑到win32api-rs-sys中的LOGPALETTE和PALETTEENTRY声明,我该如何用Rust实现相同功能?
编辑:
我已在WinSafe库中实现了该方案,具体可查看WinSafe的LOGPALETTE结构体文档。若有讨论需求,欢迎在WinSafe仓库提交issue。
内容的提问来源于stack exchange,提问作者rodrigocfd
相关产品推荐
相关产品推荐

