为啥那些封装的库里函数返回值都一样

为什么那些封装的库里函数返回值都一样
我看很多封装的库都是这样的,所有函数的返回值要么是Int,要么就是自己define的int。一般都是返回值0表示成功,否则为失败。而对于一些本身不存在失败的函数,都统统返回值为0,比如参数获取就只能用实参方式获得,然后返回一个0表示成功。

这种封装方式是一种必要么,还是有什么其他的原因?

------解决方案--------------------
就是大家习惯了这种写法  其实应该用一个自定义类型来定义返回状态比较好,但是一般我们只有成功和失败两种状态  就用int了 也可以用bool 就会涉及到跨平台问题,所以我们有的一般用int32或int64
------解决方案--------------------
不同的库有不同的风格。Windows API的风格是用GetLastError来返回错误码,而函数本身只返回是否成功。
------解决方案--------------------
返回int可以适应多着类型的错误,这有助于调用者对成功与否进行判断;
比如返回0表示成功,其它值表示不同类型的错误,com库的接口函数调用就是这种策略,一个函数调用如果成功就返回S_OK,返回其它值表示错误,而真正的返回值都放在函数参数里;
------解决方案--------------------
是不是觉得特别恶心,但是没办法,慢慢适应吧
------解决方案--------------------
这个只是约定俗成的东东,不必太纠结。你以后自己封装的时候,可以弄得先进一些
------解决方案--------------------
只要风格统一就好了~
比如返回值为DWORD类型的,返回0表示成功,其他非0值表示失败
BOOL,TRUE表示成功,FALSE表示失败
还有一些返回指针类型的,返回NULL表示失败,非NULL表示成功等等