C++ 如果通过解析字符串定义一个结构体

wisefree · 2024-2-8 20:22:54 · 341 次点击
``` C++
"
struct demo
{
        uint32_t x;
    double y;
    int arr[3];
}
"
```

请问大家,假设有这样的一个字符串,C++有没有现成的库,可以方便地把字符串转成结构体定义呢?
举报· 341 次点击
登录 注册 站外分享
20 条回复  
tyzandhr 小成 2024-3-20 11:29:03
黑魔法:根据编译器模拟结构体内存布局。手动对齐。
yanqiyu 小成 2024-2-9 22:40:11
感觉是 jit 的活
aloxaf 小成 2024-2-9 15:14:59
Kaitai Struct ?
sjkdsfkkfd 小成 2024-2-9 13:44:20
ImHex 有一个 pattern language 就是干这个的,你可以参考一下 https://github.com/WerWolv/PatternLanguage/
gaifanking 小成 2024-2-9 13:10:12
这不就是基于流的解析,参考 IM 中长链接协议的制定这种。
yyang179 小成 2024-2-9 11:15:06
最近刚好做了个类似的功能,提供一个 C++能嵌入 python 的思路:
1. 结构体转 Python ,依托于 ctypeslib2 (这个库通过 clang 的词法分析,将结构体转为 python 的 ctypes ),ctypeslib2 调用 clang 会有些问题,会需要改写 ctypeslib2 的部分源码。
2. Python 可以通过转出的库,用 from_buffer_copy 函数直接做结构体与数据映射(前提是指针长度,对齐方式需要一致),然后导出想要的数据结构,这一步用 python 写起来比 C++方便很多很多。
3. C++调用 python 的脚本,或者通过 pybind11 调用 python 的函数
bl4ckoooooH4t 小成 2024-2-9 09:52:06
不用自己开发,010 editor 的 template 已经有这个功能了
GeruzoniAnsasu 小成 2024-2-9 02:19:16
https://www.sweetscape.com/010editor/manual/IntroTempScripts.htm

Exactly what you want
Inn0Vat10n 小成 2024-2-9 00:11:02
jit
realJamespond 小成 2024-2-8 23:35:17
std::map
12下一页
返回顶部