如何定义C语言通用接口函数,使其支持默认参数?

2026-05-19 20:220阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计418个文字,预计阅读时间需要2分钟。

如何定义C语言通用接口函数,使其支持默认参数?

在SOUI4的开发中,所有SOUI核心对象都采用了类似COM接口的技术导出接口。这种方案主要目的是为了让SOUI4支持C语言调用,拓展SOUI的使用场景。

如何定义C语言通用接口函数,使其支持默认参数?

在SOUI4的开发中,所有SOUI核心对象都采用了一种类似COM接口的技术来导出接口。

这所以采用这种方案,主要目的是为了让SOUI4支持C语言调用,扩展SOUI的使用场景。

众所周知,C++函数的参数支持配置默认值,但C函数是不支持默认值的。

比如定义了类似下面一个接口

1 #undef INTERFACE 2 #define INTERFACE IRenderTarget 3 DECLARE_INTERFACE_(IRenderTarget, IObjRef) 4 { 5 //... 6 STDMETHOD_(HRESULT, SelectObject) 7 (THIS_ IRenderObj * pObj, IRenderObj * *ppOldObj) PURE; 8 //... 9 };

IRenderTarget::SelectObject方法的功能是给当前的RenderTarget选择一个绘图对象,同时如果ppOldObj不为NULL,则通过ppOldObj返回当前正在使用的同类型绘图对象。

很多时候用户并不关心原来的对象,所以通常给它置为NULL即可。这也是SOUI3及之前版本的默认参数。

阅读全文

本文共计418个文字,预计阅读时间需要2分钟。

如何定义C语言通用接口函数,使其支持默认参数?

在SOUI4的开发中,所有SOUI核心对象都采用了类似COM接口的技术导出接口。这种方案主要目的是为了让SOUI4支持C语言调用,拓展SOUI的使用场景。

如何定义C语言通用接口函数,使其支持默认参数?

在SOUI4的开发中,所有SOUI核心对象都采用了一种类似COM接口的技术来导出接口。

这所以采用这种方案,主要目的是为了让SOUI4支持C语言调用,扩展SOUI的使用场景。

众所周知,C++函数的参数支持配置默认值,但C函数是不支持默认值的。

比如定义了类似下面一个接口

1 #undef INTERFACE 2 #define INTERFACE IRenderTarget 3 DECLARE_INTERFACE_(IRenderTarget, IObjRef) 4 { 5 //... 6 STDMETHOD_(HRESULT, SelectObject) 7 (THIS_ IRenderObj * pObj, IRenderObj * *ppOldObj) PURE; 8 //... 9 };

IRenderTarget::SelectObject方法的功能是给当前的RenderTarget选择一个绘图对象,同时如果ppOldObj不为NULL,则通过ppOldObj返回当前正在使用的同类型绘图对象。

很多时候用户并不关心原来的对象,所以通常给它置为NULL即可。这也是SOUI3及之前版本的默认参数。

阅读全文