以下为个人经验,因为做定制软件比较多,所以总结了一下;
1、接口参数不传“结构”,如果参数是结构体或者类,那么当用户需要改结构体名称或类名的时候,那就完; 用buff 和Len来代替参数,这样的好处,不受版本和外部名称的控制;
2、结构不能做为接口的参数,那么容器就更不用说了,是坚决不能用的。或许有人说:我用容器的指针不是可以吗? 但是,从工程上讲是坚决不行的,一个的结构名称问题,一个该编译器一定要和外部的编译器一模一样,复用性极差,如果合同的维护期长,那我也只能说完了;
3、不单单是接口,我的意思是大部分的函数都需要返回int型,接口更应该返回int型。理由是程序没有bug是不可能的,如果还是单纯的返回bool 或者void,那么只能一行一行代码调试,如果用int型,可以直接返回错误值,根据错误码进行直接定位;
4、接口用int型的好处是,外部的数据进入内部肯定要进行验证的,假如返回bool,无法定位到是什么错误,什么用都不管。用户会说是你们的问题,我们会说是用户的问题,所以用int型返回错误码就解决这个问题;
5、正确的值返回0,因为所有的进制0还是0不会变;
以上主要说明两点:dll文件接口参数尽量用buff和len而不是结构;
接口的返回值要用int 返回错误码值