相关疑难解决方法(0)

包装用于C消耗的C++类API

我有一组相关的C++类,必须以这样的方式包装和导出DLL,以便C/FFI库可以轻松使用它们.我正在寻找一些"最佳实践"来做这件事.例如,如何创建和释放对象,如何处理基类,替代解决方案等...

到目前为止,我的一些基本指导原则是将方法转换为简单函数,并使用额外的void*参数表示'this'指针,包括任何析构函数.构造函数可以保留其原始参数列表,但必须返回表示该对象的指针.所有内存都应该通过同一组进程范围的分配和自由例程来处理,并且在某种意义上应该可以通过宏或其他方式进行热交换.

c c++ api class word-wrap

33
推荐指数
4
解决办法
2万
查看次数

GCC可以产生像VS这样的结构/类名称不匹配吗?

我想获得GCC产生的警告时,发现已被宣布与这两个名字是VisualStudio的生产classstruct.(警告4099)这通常来自前向声明,例如:

struct Base;
...
class Base { ... };
Run Code Online (Sandbox Code Playgroud)

VS在这种情况下实际上无法链接,因此我已将警告提升为错误.由于这个项目是跨平台的,我想在使用GCC编译时也发现这个问题 - 否则我可能会意外地检查在VS中不起作用的代码.

是否有任何开关或方法让GCC也拒绝或警告这样的类/结构声明不匹配?

注意:从评论中不确定此警告是否合法.对于我的问题它是不相关的,因为条件导致VisualStudio中的链接失败(我不能忽略警告).因此,我只想使用GCC识别问题,以便我的Windows编译不会突然停止工作.


答案:似乎没有解决方案.

c++ gcc visual-studio

7
推荐指数
2
解决办法
1122
查看次数

标签 统计

c++ ×2

api ×1

c ×1

class ×1

gcc ×1

visual-studio ×1

word-wrap ×1