一种计算机语言的交互系统及交互方法与流程

文档序号:12595511阅读:511来源:国知局
一种计算机语言的交互系统及交互方法与流程

本发明涉及计算机通讯技术领域,具体涉及一种计算机语言的交互系统及交互方法。



背景技术:

C#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于Microsoft .NET平台的应用程序,Microsoft .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。C#是微软公司在2000年7月发布的一种全新且简单、安全、面向对象的程序设计语言,是专门为.NET的应用而开发的语言,它吸收了C++、Visual Basic、Delphi、Java等语言的优点,体现了当今最新的程序设计技术的功能和精华。C#继承了C语言的语法风格,同时又继承了C++的面向对象特性。不同的是,C#的对象模型已经面向Internet进行了重新设计,使用的是.NET框架的类库;C#不再提供对指针类型的支持,使得程序不能随便访问内存地址空间,从而更加健壮;C#不再支持多重继承,避免了以往类层次结构中由于多重继承带来的可怕后果。.NET框架为C#提供了一个强大的、易用的、逻辑结构一致的程序设计环境。其特点有:语言简洁、 保留了C++的强大功能、快速应用开发功能、语言的自由性、强大的Web服务器控件、支持跨平台以及与XML相融合。C++语言是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。

C#与C++的区别主要体现在:1、编译目标:C++代码直接编译为本地可执行代码,而C#默认编译为中间语言(IL)代码,执行时再通过Just-In-Time将需要的模块临时编译成本地代码。2、内存管理:C++需要显式地删除动态分配给堆的内存,而C#不需要这么做,C#采用垃圾回收机制自动在合适的时机回收不再使用的内存。3、指针:C++中大量地使用指针,而C#使用对类实例的引用,如果确实想在C#中使用指针,必须声明该内容是非安全的。不过,一般情况下C#中没有必要使用指针。4、字符串处理:在C#中,字符串是作为一种基本数据类型来对待的,因此比C++中对字符串的处理要简单得多。5、库:C++依赖于以继承和模板为基础的标准库,C#则依赖于.NET基库。6、C++允许类的多继承,而C#只允许类的单继承,而通过接口实现多继承。7、C#亦应用于网页设计,如ASP与ASP.NET,而C++则无。

目前,在具体的开发模块中,编辑器的主体业务逻辑使用C#编写,利用C#高级语言的各种特性,提高开发效率与代码质量。在一些涉及到游戏场景绘制等对效率要求较高的模块,则使用C++编写,然后C#再对C++代码进行调用。但是在C#对C++进行交互调用时,一般方法是通过手动编写P/Invoke代码声明C++相关接口,提供给C#调用,这种调用方式每次都需要手动编写相关接口,不仅影响开发效率,而且还容易出错。因此,为了解决现有技术中存在的问题,研究一种高效率、准确性高的计算机语言的交互系统及交互方法已经成为一项重要任务。



技术实现要素:

本发明解决的技术问题是提供一种计算机语言的交互系统及交互方法,目的是通过业务逻辑模块调用接口模块自动生成的接口来实现与功能模块之间的交互。

本发明的技术方案为:

为了解决上述技术问题,本发明提供了一种计算机语言的交互系统,包括采用计算机语言编译具体功能的功能模块、调用不同功能模块实现完整业务逻辑的业务逻辑模块,还包括实现功能模块与业务逻辑模块之间具体功能交互的接口模块,所述接口模块根据功能模块实现的具体功能自动生成相应的接口,所述业务逻辑模块通过调用自动生成的接口实现与功能模块之间具体功能的交互。

进一步的,所述功能模块、接口模块、以及业务逻辑模块均可采用多种不同的计算机语言来实现,例如C语言、C++、JAVA、C#、Visual Basic或Delphi等多种不同的计算机语言,选优的采用C语言、C++、JAVA、C#来实现。

进一步的,所述功能模块与业务逻辑模块采用的计算机语言不相同。

进一步的,所述接口模块自动生成的接口为通过开放性源代码swig的个性化编译而自动形成的接口。

本发明还提供了一种计算机语言交互方法,接口模块根据功能模块实现的具体功能自动生成相应的接口,业务逻辑模块通过调用自动生成的接口实现与功能模块之间的交互。

首先是功能模块采用一种计算机语言来编译具体功能,完成对功能模块的开发;其次,接口模块根据功能模块所实现的具体功能并通过开放性源代码swig的个性化技术自动编译与功能模块相匹配的接口;最后,业务逻辑模块通过调用自动生成的接口以实现与功能模块之间的交互。

进一步的,所述自动生成的接口的生成方法具体包括以下步骤:

步骤1、定义生成的程序集名字;

步骤2、完成自定义控件的默认配置;

步骤3、导入步骤2中的默认配置,辅助swig解析;

步骤4、添加头文件声明;

步骤5、添加导出控件类型声明,指定类型的全名;

步骤6、添加导出的类型。

进一步的,所述功能模块采用C++作为开发语言来编译实现具体的功能,例如游戏场景绘制。

进一步的,所述接口模块根据C++所实现的具体功能在开放性源代码swig的基础上进行个性化编译而自动生成与C++相匹配的接口。

进一步的,所述业务逻辑模块采用C#作为开发语言来编写编辑器的主体业务逻辑,并通过接口模块自动生成的与C++相匹配的接口调用不同的功能模块来实现完整的业务逻辑。

本发明的技术效果为:

本发明提供了一种计算机语言的交互系统及交互方法,接口模块根据功能模块实现的具体功能自动生成相应的接口,业务逻辑模块通过调用自动生成的接口实现与功能模块之间的交互。本发明不需要手动编写相关接口,而是自动生成相应的接口,来实现业务逻辑模块对功能模块的调用,从而实现两种不同计算机语言之间的交互,这样不仅可以提高开发者的开发效率,而且还不容易出错。

附图说明

图1为本发明计算机语言的交互系统结构示意图。

图2为本发明计算机语言的交互方法流程图。

图3为本发明自动生成的接口的生成方法流程图。

具体实施方式

下面结合附图说明本发明的具体实施方式:

如图1所示,本发明提供了一种计算机语言的交互系统,包括采用计算机语言编译具体功能的功能模块、调用不同功能模块实现完整业务逻辑的业务逻辑模块,还包括实现功能模块与业务逻辑模块之间具体功能交互的接口模块,所述接口模块根据功能模块实现的具体功能自动生成相应的接口,所述业务逻辑模块通过调用自动生成的接口实现与功能模块之间具体功能的交互。功能模块是指使用一种计算机语言来编译具体功能的模块;业务逻辑模块是指通过调用不同的功能模块来实现完成的业务逻辑的模块;接口模块为功能模块和业务逻辑模块提供交互的工具,接口模块自动生成的接口为通过开放性源代码swig的个性化编译而自动形成的接口。功能模块、接口模块、以及业务逻辑模块均可采用多种不同的计算机语言来实现,选优的采用C语言、C++、JAVA、C#来实现。功能模块与业务逻辑模块采用的计算机语言不相同。

如图2-图3所示,本发明提供了一种计算机语言交互方法,接口模块根据功能模块实现的具体功能自动生成相应的接口,业务逻辑模块通过调用自动生成的接口实现与功能模块之间的交互。首先是功能模块采用一种计算机语言来编译具体功能,完成对功能模块的开发;其次,接口模块根据功能模块所实现的具体功能并通过开放性源代码swig的个性化技术自动编译与功能模块相匹配的接口;最后,业务逻辑模块通过调用自动生成的接口以实现与功能模块之间的交互。在本实施例中,功能模块采用C++作为开发语言来编译实现具体的功能,例如游戏场景绘制;业务逻辑模块采用C#作为开发语言来编写编辑器的主体业务逻辑,用来实现各个功能模块的调用,从而形成完整有逻辑的业务逻辑模块。因为功能模块与业务逻辑模块采用的计算机语言不相同,当C#调用C++的时候,需要有一个与C++相对应的接口,来供C#调用。在本发明中,为了提高开发者的开发效率,避免出错。本发明接口模块根据C++所实现的具体功能在开放性源代码swig的基础上进行个性化编译而自动生成与C++相匹配的接口,来方便C#的调用。

从C++接口自动生成C#接口的生成方法具体包括以下步骤:

步骤1、定义生成的C++程序集名字;%module CSCustomButton;以导出一个 CSCustomButton 为例,假设 CSCustomButton 位于工程 CustomButtonProject 中,工程生成的程序集名称也为 CustomButton,此时在 Windows 中会导致生成一个名字为 CustomButton.dll 的文件;定义生成的程序集名字就是这个包含 CSCustomButton 的程序集 CustomButton 的名字,也就是 CustomButton;

步骤2、完成自定义控件的默认配置;例如CSCustomButton 中使用了文本控件,那么就需要将使用的文本控件添加到默认配置中,除此之外,用来完整描述 CSCustomButton 的控件类型都要添加到默认配置中;

步骤3、导入步骤2中的默认配置,以辅助swig解析;%import “..\CocosStudio.EngineAdapter\SwigCocosStudioEngineAdapter.i” ;

步骤4、编写CSCustomButton.h扩展,添加自定义控件的头文件声明;所添加的自定义控件的头文件声明不限于一个还是多个,每个占用一行,写入#include“CSCustomButton.h”来实现;

步骤5、添加导出控件类型声明,指定类型的全名;指定类型的全名也就是包含命名空间的类名;%typemap(csattributes)CocoStudio::EngineAdapter::CSCustomButton“[CSUIExportAttribute(true)]”;

步骤6、添加导出的类型;写入%include“CSCustomButton.h”。

最后说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1