首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么封装复杂类型的API

2012-03-22 
如何封装复杂类型的API我由于兴趣原因自己定义了一套小型脚本语言,并且用C++实现了其编译器和虚拟机。工作

如何封装复杂类型的API
我由于兴趣原因自己定义了一套小型脚本语言,并且用C++实现了其编译器和虚拟机。工作流程大体是编写脚本然后由编译器编译脚本生成二进制的字节码,接着虚拟机读取字节码并且执行。现在已经大体完成了各种基本程序逻辑和功能。但是个人一直感觉功能不是很强大,所以想封装一些常用的WindosAPI。当我封装的时候发现了一个问题,那就是我定义的这一套脚本语言只支持一些基本的数据类型(int,double,bool,string,Array数组等),而WindosAPI的参数往往都带有复合数据类型的参数。这样一来就不能封装那些带有复合数据类型的API。
听说这里高手如云,所以恳请各位达人为小弟支招(如何封装这些复合数据类型API),任何一点建议或者想法,小弟都感激不尽!
谢谢!

[解决办法]
既然自己在做脚本语言,建议你找lua的源码参考。
lua的低版本(4.X及以前)源码很短,很好懂
[解决办法]
个人觉得你封装Windows的API还不如自己写呢,理由如下:

Win32 API虽然很底层了,但是它并没有提供每个API的具体实现,我们仅仅也就是通过接口来调

用这些API.其实内部究竟怎么做的,我们也不知道。这样它的复杂参数实际也没有什么参考价

值,除非构建和它完全一样类型的参数,例如HANDLE,否则你不可能实现HANDLE在API内部所有

的功能。

或者可以这样实现,你可以自己定义一些简单的函数,使用你自己定义的参数,可以是内建类

型,也可以是构造体,然后在你的函数内部,根据你的参数来调用不同的Win32 API,然后在你

的函数内部自己制定调用API的参数,然后把结果返回,这样你的函数就能实现与API一样的功能

了。

以上只是想法啊,没有真正实现,帮你开阔一下思路 ^_^

热点排行