c - 在 C 中完成包装器的不完整类型
问题描述
我在一天的大部分时间里都停留在这个问题上。我的目标是链接两个库。我只能接触到 wrapper.c/.h 和 DepB.h 文件。我正在尝试使用由库 B 结构 (structB) 持有的结构 (structA) 之一来获取库 A。我知道我可以将 structA 作为 void* 存储在 structB 中,然后对其进行转换,但我想获得更性感的代码!
实际上,gcc 会为我返回 wrap() 的以下错误:
void wrap (structB* structBptr)
{
structA structAinst;
structBptr->structAptr = &structAinst;
// warning: assignment from incompatible pointer type
funcA(structBptr->structAptr->someField);
// error: dereferencing pointer to incomplete type 'struct structA'
}
我想知道这个问题是否来自 DepA.h 将 structA 定义为一种类型......我可以在我的包装器或 LibB 依赖项中写什么,他将 DepA.h 定义为 structA?
解决方案
推荐阅读
- python - 当keep_geom_type = True时,keep_geom_type使用overlay how ='difference'返回geometrycollection的错误?使用 geopandas 0.10.1
- azure-devops - 从在管道上的 VM 内运行的脚本获取控制台输出
- python - Iterate through nested JSON object and get values throughout
- c++ - 如何正确使用VTK ConstrainedDelaunay2D?
- ionic-framework - 尝试更新字段时我得到值 null
- angular - 如何修改 Ionic 图标中的属性?
- html - 在这种情况下,元素 arcticle 不允许作为元素 main 的子元素
- javascript - 仅在找到 4 个特定单词时匹配的正则表达式
- typescript - 是否可以定义实现接口而不实现的类?
- javascript - javascript中有toBool函数吗?