You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 21:21:47