CN104317589A - 一种用于加载动态链接库的代码自动生成方法及装置 - Google Patents

一种用于加载动态链接库的代码自动生成方法及装置 Download PDF

Info

Publication number
CN104317589A
CN104317589A CN201410567835.5A CN201410567835A CN104317589A CN 104317589 A CN104317589 A CN 104317589A CN 201410567835 A CN201410567835 A CN 201410567835A CN 104317589 A CN104317589 A CN 104317589A
Authority
CN
China
Prior art keywords
rule
code
function
constant
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410567835.5A
Other languages
English (en)
Other versions
CN104317589B (zh
Inventor
邱田华
宋斌
刘毅
吴波
方鹏
郑艳梅
谭旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CLP Kesiyi Technology Co Ltd
Original Assignee
CETC 41 Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CETC 41 Institute filed Critical CETC 41 Institute
Priority to CN201410567835.5A priority Critical patent/CN104317589B/zh
Publication of CN104317589A publication Critical patent/CN104317589A/zh
Application granted granted Critical
Publication of CN104317589B publication Critical patent/CN104317589B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供一种用于加载动态链接库的代码自动生成方法及装置,其中装置包括,抽取规则编辑模块,用于为抽取模块定义抽取规则;所述函数原型和常量定义抽取模块,用于根据定义好的抽取规则从头文件中抽取出函数原型和常量定义列表;所述代码模板和参数转换规则编辑模块,用于编辑代码模板和参数转换规则;所述目标代码生成模块,根据目标代码语言和填充方式,选择对应的代码模板和参数转换规则,将函数原型和常量定义转换为目标编程语言代码。采用上述方案自动生成加载代码降低了开发人员要求,使开发人员不用关心任意编程语言下DLL的动态加载、静态加载具体实现方法,不用熟悉参数类型在不同语言下的对应关系。

Description

一种用于加载动态链接库的代码自动生成方法及装置
技术领域
本发明属于代码自动生成技术领域,尤其涉及的是一种用于加载动态链接库的代码自动生成方法及装置。
背景技术
加载DLL分为静态加载和动态加载两种方式。静态加载方式包含三种静态加载方法:
(1)手动编写加载DLL代码,不同语言采用的步骤也不一样:在C语言下添加对LIB文件的引用,并重新定义需要调用的函数和常量,函数和常量的定义和DLL对应的头文件中的定义类似,只是参数类型改为当前编程语言下的类型;在C#语言下,创建一个类,在类中声明和头文件中函数对应的定义;
(2)在美国国家仪器公司的LabWindows CVI下,装载DLL对应的FP文件实现自动加载;
(3)在微软公司的Microsoft Visual Studio集成开发环境中,添加美国国家仪器公司的Measurement Studio下的仪器驱动向导文件模板,选择DLL对应的FP文件,把FP文件中的函数定义和常量定义都自动生成加载代码。
动态加载DLL方法对应于不同的目标语言,具有不同的加载步骤。对应同一种编程语言下,加载步骤通常是一定的。例如对应于C语言下的加载步骤有:
创建一个函数声明,其参数数据类型要与调用的DLL头文件定义的函数原型相吻合;
通过Win32 API函数LoadLibrary()显式的调用DLL,此函数返回DLL的实例句柄;
通过Win32 API函数GetProcAddress()获取要调用的DLL的函数地址,把结果赋给自定义函数的指针类型;
使用函数声明来调用DLL中的函数;
最后调用完成后,通过Win32 API函数FreeLibrary()释放DLL函数。
在C#语言下的加载步骤有:
定义一个委托声明,其参数数据类型要与调用的DLL头文件定义的函数原型相吻合;
创建委托声明的委托变量;
通过Win32 API函数LoadLibrary()显式的调用DLL,此函数返回DLL的实例句柄;
通过Win32 API函数GetProcAddress()获取要调用的DLL的函数地址,把结果赋给委托变量;
使用委托来调用DLL中的函数;
最后调用完成后,通过Win32 API函数FreeLibrary()释放DLL函数。
综上所述,编写加载DLL的代码的过程,核心的工作是得到DLL内部的函数定义和常量定义列表;然后把函数和常量定义中的参数类型转换为目标编程语言下的参数类型;最后根据编程语言和加载方式,确定加载步骤,编写或生成加载代码。
目前的加载DLL的方法通常采用手动编码实现和利用第三方软件工具自动加载实现。
对应于采用手动编码实现DLL加载的方法,首先需要对目标编程语言下的加载DLL的静态、动态两种方式步骤有所了解,并熟悉不同编程语言的参数类型间的转换,提高了软件人员的专业要求;当DLL有更新时,需要软件人员手动的修改加载代码;当需要在新的语言下加载动态连接库时,需要软件人员重新编写加载代码实现。综上所述,手动编写加载DLL代码的方式,增加了软件人员的专业要求和工作量,造成人力资源的巨大浪费,降低软件人员的开发效率。
对应于利用第三方软件工具自动实现DLL加载的两种方法,都依赖于CVI生成的FP文件,并且都只能静态方式加载DLL。对应第一种方法,只支持CVI下对CVI编写的DLL的加载。第二种方法虽然支持多种目标语言对DLL的封装,但是依赖于Microsoft Visual Studio,并且只能生成Microsoft Visual Studio所支持编程语言的加载代码;并且自动生成代码的过程有一部分的局限性,每次都是把FP文件中的所有函数和常量都进行封装,不支持选择需要封装函数与常量的列表。
因此,现有技术存在缺陷,需要改进。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种用于加载动态链接库的代码自动生成方法及装置。
本发明的技术方案如下:
一种用于加载动态链接库的代码自动生成装置,其中,包括函数原型和常量定义抽取模块、抽取规则编辑模块、代码模板和参数转换规则编辑模块、目标代码生成模块;所述抽取规则编辑模块,用于为抽取模块定义抽取规则;所述函数原型和常量定义抽取模块,用于根据定义好的抽取规则从头文件中抽取出函数原型和常量定义列表;所述代码模板和参数转换规则编辑模块,用于编辑代码模板和参数转换规则;所述目标代码生成模块,根据目标代码语言和加载方式,选择对应的代码模板和参数转换规则,将函数原型和常量定义转换为目标编程语言代码。
所述的用于加载动态链接库的代码自动生成装置,其中,所述抽取规则编辑模块具体执行以下步骤:
步骤1111:新建或者打开已有规则;
步骤1112:根据头文件中函数原型和变量定义格式编辑抽取规则;
步骤1113:找出几条典型的函数原型,检验该规则是否能解析出函数名称、变量名、变量类型等信息,如果是则进入步骤1114,否则执行步骤1112;
步骤1114:保存为新的规则。
所述的用于加载动态链接库的代码自动生成装置,其中,所述函数原型和常量定义抽取模块具体执行以下步骤:
步骤1121:函数原型和常量定义抽取模块装载头文件;
步骤1122:选择对应的抽取规则;
步骤1123:逐行解析头文件;
步骤1124:抽取出函数原型、常量,加到函数原型、常量列表中,生成常量列表和函数列表对象;
步骤1125:判断是否为最后一行,如是则执行步骤1126,如否则执行步骤1123;
步骤1126:保存为函数原型及常量列表文件。
所述的用于加载动态链接库的代码自动生成装置,其中,所述代码模板和参数转换规则编辑模块具体执行以下步骤:
步骤1131:新建规则或者打开已有规则:
步骤1132:代码模板是根据目标代码手动编辑代码模板;
步骤1133:判断检索规则是否完整,如是行执行步骤1134,如否则执行步骤1132;
步骤1134:保存为新的规则后结束;参数转换规则是源参数到目标参数的转换;检查函数列表中变量类型是否都在参数转换规则中,如果未包含在转换规则中,则自动添加到规则后面,并由用户自己添加目标参数类型。
所述的用于加载动态链接库的代码自动生成装置,其中,所述目标代码生成模块具体执行以下步骤:
步骤1141:加载准备好的函数原型、常量列表;
步骤1142:选择目标语言、加载方式,得到转换规则和代码模块;
步骤1143:选择需要生成的函数项、常量项集合;
步骤1144:转换为目标语言下的函数、常量列表;
步骤1145:依次执行,得到模板文件对象位置;
步骤1146:把函数和常量列表添加到模板位置;
步骤1147:判断函数项是否为集合中的最后一项,如是则执行步骤1148,如否则执行步骤1145;
步骤1148:保存目标语言代码,后结束。
一种用于加载动态链接库的代码自动生成方法,其中,包括以下步骤:
步骤1:先运行抽取规则编辑模块编辑抽取规则,运行函数原型和常量定义抽取模块来抽取函数原型和常量定义等信息;
步骤2:检验生成的函数原型和常量定义是否抽取完毕,如是,则进入步骤3,如否则进入步骤5;
步骤3:运行目标代码模板生成模块;
步骤4:检验目标代码生成模块的目标代码是否满足需要,是则结束,否则进入步骤6;
步骤5:运行抽取规则编辑模块修改规则后执行步骤1;
步骤6:运行代码模板和参数转换规则编辑模块来编辑代码模板和参数转换规则后,进入步骤3。
所述的一种用于加载动态链接库的代码自动生成方法,其中,步骤1中,抽取规则编辑模块具体执行以下步骤:
步骤1111:新建或者打开已有规则;
步骤1112:根据头文件中函数原型和变量定义格式编辑抽取规则;
步骤1113:找出几条典型的函数原型,检验该规则是否能解析出函数名称、变量名、变量类型等信息,如果是则进入步骤1114,否则执行步骤1112;
步骤1114:保存为新的规则。
所述的用于加载动态链接库的代码自动生成装置,其中,步骤1中,函数原型和常量定义抽取模块具体执行以下步骤:
步骤1121:函数原型和常量定义抽取模块装载头文件;
步骤1122:选择对应的抽取规则;
步骤1123:逐行解析头文件;
步骤1124:抽取出函数原型、常量,加到函数原型、常量列表中,生成常量列表和函数列表对象;
步骤1125:判断是否为最后一行,如是则执行步骤1126,如否则执行步骤1123;
步骤1126:保存为函数原型及常量列表文件。
所述的用于加载动态链接库的代码自动生成装置,其中,步骤6,代码模板和参数转换规则编辑模块具体执行以下步骤:
步骤1131:新建规则或者打开已有规则:
步骤1132:代码模板是根据目标代码手动编辑代码模板;
步骤1133:判断检索规则是否完整,如是行执行步骤1134,如否则执行步骤1132;
步骤1134:保存为新的规则后结束;参数转换规则是源参数到目标参数的转换;检查函数列表中变量类型是否都在参数转换规则中,如果未包含在转换规则中,则自动添加到规则后面,并由用户自己添加目标参数类型。
所述的用于加载动态链接库的代码自动生成装置,其中,步骤3中,目标代码生成模块具体执行以下步骤:
步骤1141:加载准备好的函数原型、常量列表;
步骤1142:选择目标语言、加载方式,得到转换规则和代码模块;
步骤1143:选择需要生成的函数项、常量项集合;
步骤1144:转换为目标语言下的函数、常量列表;
步骤1145:依次执行,得到模板文件对象位置;
步骤1146:把函数和常量列表添加到模板位置;
步骤1147:判断函数项是否为集合中的最后一项,如是则执行步骤1148,如否则执行步骤1145;
步骤1148:保存目标语言代码,后结束。
采用上述方案的优点是:DLL中的函数原型和常量定义的抽取不依赖于第三方软件。加载代码自动生成降低了开发人员要求,使开发人员不用关心任意编程语言下DLL的动态加载、静态加载具体实现方法,不用熟悉参数类型在不同语言下的对应关系。生成模块通过图形化选择需要加载的函数列表快速高效的生成目标语言的加载代码,提高了开发效率。
附图说明
图1为本发明装置的结构示意图。
图2为本发明装置工作流程图。
图3为本发明装置中抽取规则编辑模块工作流程图。
图4为本发明装置中函数原型和常量定义抽取模块工作流程图。
图5为本发明装置中代码模板和参数转换规则模块工作流程图。
图6为本发明装置中目标代码生成模块工作流程图。
具体实施方式
以下结合附图和具体实施例,对本发明进行详细说明。
实施例1
本发明提供一种用于加载动态链接库的代码自动生成装置,本发明装置11分为函数原型和常量定义抽取模块112、抽取规则编辑模块111、代码模板和参数转换规则编辑模块113、目标代码生成模块114四部分,如图1所示,抽取规则编辑模块111为抽取模块定义抽取规则;函数原型和常量定义抽取模块112根据定义好的抽取规则从头文件10中抽取出函数原型和常量定义列表;代码模板和参数转换规则编辑模块113,用于编辑代码模板和参数转换规则;目标代码生成模块114,根据目标代码语言和加载方式,选择对应的代码模板和参数转换规则,将函数原型和常量定义转换为目标编程语言代码12。
所述抽取规则编辑模块具体执行以下步骤:
步骤1111:新建或者打开已有规则;
步骤1112:根据头文件中函数原型和变量定义格式编辑抽取规则;
步骤1113:找出几条典型的函数原型,检验该规则是否能解析出函数名称、变量名、变量类型等信息,如果是则进入步骤1114,否则执行步骤1112;
步骤1114:保存为新的规则。
所述函数原型和常量定义抽取模块具体执行以下步骤:
步骤1121:函数原型和常量定义抽取模块装载头文件;
步骤1122:选择对应的抽取规则;
步骤1123:逐行解析头文件;
步骤1124:抽取出函数原型、常量,加到函数原型、常量列表中,生成常量列表和函数列表对象;
步骤1125:判断是否为最后一行,如是则执行步骤1126,如否则执行步骤1123;
步骤1126:保存为函数原型及常量列表文件。
所述代码模板和参数转换规则编辑模块具体执行以下步骤:
步骤1131:新建规则或者打开已有规则:
步骤1132:代码模板是根据目标代码手动编辑代码模板;
步骤1133:判断检索规则是否完整,如是行执行步骤1134,如否则执行步骤1132;
步骤1134:保存为新的规则后结束;参数转换规则是源参数到目标参数的转换;检查函数列表中变量类型是否都在参数转换规则中,如果未包含在转换规则中,则自动添加到规则后面,并由用户自己添加目标参数类型。
所述目标代码生成模块具体执行以下步骤:
步骤1141:加载准备好的函数原型、常量列表;
步骤1142:选择目标语言、加载方式,得到转换规则和代码模块;
步骤1143:选择需要生成的函数项、常量项集合;
步骤1144:转换为目标语言下的函数、常量列表;
步骤1145:依次执行,得到模板文件对象位置;
步骤1146:把函数和常量列表添加到模板位置;
步骤1147:判断函数项是否为集合中的最后一项,如是则执行步骤1148,如否则执行步骤1145;
步骤1148:保存目标语言代码,后结束。
在上述内容的基础上,本发明还提供一种用于加载动态链接库的代码自动生成方法,工作流程如图2所示:步骤1:先运行抽取规则编辑模块编辑抽取规则,运行函数原型和常量定义抽取模块来抽取函数原型和常量定义等信息;步骤2:检验生成的函数原型和常量定义是否抽取完毕,如是,则进入步骤3,如否则进入步骤5;步骤3:运行目标代码模板生成模块;步骤4:检验目标代码生成模块的目标代码是否满足需要,是则结束,否则进入步骤6;步骤5:运行抽取规则编辑模块修改规则后执行步骤1;步骤6:运行代码模板和参数转换规则编辑模块来编辑代码模板和参数转换规则后,进入步骤3;
抽取规则编辑模块是手动建立抽取规则,具体流程如图3所示。步骤1111:新建或者打开已有规则;步骤1112:根据头文件中函数原型和变量定义格式编辑抽取规则;步骤1113:找出几条典型的函数原型,检验该规则是否能解析出函数名称、变量名、变量类型等信息,如果是则进入步骤1114,否则执行步骤1112;步骤1114:保存为新的规则。
如图4所示:步骤1121:函数原型和常量定义抽取模块装载头文件;步骤1122:选择对应的抽取规则;步骤1123:逐行解析头文件;步骤1124:抽取出函数原型、常量,加到函数原型、常量列表中,生成常量列表和函数列表对象;步骤1125:判断是否为最后一行,如是则执行步骤1126,如否则执行步骤1123;步骤1126:保存为函数原型及常量列表文件。
如图5所示,代码模板和参数转换规则模块工作流程:步骤1131:新建规则或者打开已有规则:步骤1132:代码模板是根据目标代码手动编辑代码模板;步骤1133:判断检索规则是否完整,如是行执行步骤1134,如否则执行步骤1132;步骤1134:保存为新的规则后结束;参数转换规则是源参数到目标参数的转换;检查函数列表中变量类型是否都在参数转换规则中,如果未包含在转换规则中,则自动添加到规则后面,并由用户自己添加目标参数类型。
目标代码自动生成模块执行流程如图6所示:步骤1141:加载准备好的函数原型、常量列表;步骤1142:选择目标语言、加载方式,得到转换规则和代码模块;步骤1143:选择需要生成的函数项、常量项集合;步骤1144:转换为目标语言下的函数、常量列表;步骤1145:依次执行,行到模板文件对象位置;步骤1146:把函数和常量列表添加到模板位置;步骤1147:判断函数项是否为集合中的最后一项,如是则执行步骤1148,如否则执行步骤1145;步骤1148:保存目标语言代码,后结束。
采用上述方案的优点是:DLL中的函数原型和常量定义的抽取不依赖于第三方软件。加载代码自动生成降低了开发人员要求,使开发人员不用关心任意编程语言下DLL的动态加载、静态加载具体实现方法,不用熟悉参数类型在不同语言下的对应关系。生成模块通过图形化选择需要加载的函数列表快速高效的生成目标语言的加载代码,提高了开发效率。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (10)

1.一种用于加载动态链接库的代码自动生成装置,其特征在于,包括函数原型和常量定义抽取模块、抽取规则编辑模块、代码模板和参数转换规则编辑模块、目标代码生成模块;所述抽取规则编辑模块,用于为抽取模块定义抽取规则;所述函数原型和常量定义抽取模块,用于根据定义好的抽取规则从头文件中抽取出函数原型和常量定义列表;所述代码模板和参数转换规则编辑模块,用于编辑代码模板和参数转换规则;所述目标代码生成模块,根据目标代码语言和加载方式,选择对应的代码模板和参数转换规则,将函数原型和常量定义转换为目标编程语言代码。
2.如权利要求1所述的用于加载动态链接库的代码自动生成装置,其特征在于,所述抽取规则编辑模块具体执行以下步骤:
步骤1111:新建或者打开已有规则;
步骤1112:根据头文件中函数原型和变量定义格式编辑抽取规则;
步骤1113:找出几条典型的函数原型,检验该规则是否能解析出函数名称、变量名、变量类型等信息,如果是则进入步骤1114,否则执行步骤1112;
步骤1114:保存为新的规则。
3.如权利要求1所述的用于加载动态链接库的代码自动生成装置,其特征在于,所述函数原型和常量定义抽取模块具体执行以下步骤:
步骤1121:函数原型和常量定义抽取模块装载头文件;
步骤1122:选择对应的抽取规则;
步骤1123:逐行解析头文件;
步骤1124:抽取出函数原型、常量,加到函数原型、常量列表中,生成常量列表和函数列表对象;
步骤1125:判断是否为最后一行,如是则执行步骤1126,如否则执行步骤1123;
步骤1126:保存为函数原型及常量列表文件。
4.如权利要求1所述的用于加载动态链接库的代码自动生成装置,其特征在于,所述代码模板和参数转换规则编辑模块具体执行以下步骤:
步骤1131:新建规则或者打开已有规则:
步骤1132:代码模板是根据目标代码手动编辑代码模板;
步骤1133:判断检索规则是否完整,如是行执行步骤1134,如否则执行步骤1132;
步骤1134:保存为新的规则后结束;参数转换规则是源参数到目标参数的转换;检查函数列表中变量类型是否都在参数转换规则中,如果未包含在转换规则中,则自动添加到规则后面,并由用户自己添加目标参数类型。
5.如权利要求1所述的用于加载动态链接库的代码自动生成装置,其特征在于,所述目标代码生成模块具体执行以下步骤:
步骤1141:加载准备好的函数原型、常量列表;
步骤1142:选择目标语言、加载方式,得到转换规则和代码模块;
步骤1143:选择需要生成的函数项、常量项集合;
步骤1144:转换为目标语言下的函数、常量列表;
步骤1145:依次执行,得到模板文件对象位置;
步骤1146:把函数和常量列表添加到模板位置;
步骤1147:判断函数项是否为集合中的最后一项,如是则执行步骤1148,如否则执行步骤1145;
步骤1148:保存目标语言代码,后结束。
6.一种用于加载动态链接库的代码自动生成方法,其特征在于,包括以下步骤:
步骤1:先运行抽取规则编辑模块编辑抽取规则,运行函数原型和常量定义抽取模块来抽取函数原型和常量定义等信息;
步骤2:检验生成的函数原型和常量定义是否抽取完毕,如是,则进入步骤3,如否则进入步骤5;
步骤3:运行目标代码模板生成模块;
步骤4:检验目标代码生成模块的目标代码是否满足需要,是则结束,否则进入步骤6;
步骤5:运行抽取规则编辑模块修改规则后执行步骤1;
步骤6:运行代码模板和参数转换规则编辑模块来编辑代码模板和参数转换规则后,进入步骤3。
7.如权利要求6所述的一种用于加载动态链接库的代码自动生成方法,其特征在于,步骤1中,抽取规则编辑模块具体执行以下步骤:
步骤1111:新建或者打开已有规则;
步骤1112:根据头文件中函数原型和变量定义格式编辑抽取规则;
步骤1113:找出几条典型的函数原型,检验该规则是否能解析出函数名称、变量名、变量类型等信息,如果是则进入步骤1114,否则执行步骤1112;
步骤1114:保存为新的规则。
8.如权利要求6所述的用于加载动态链接库的代码自动生成装置,其特征在于,步骤1中,函数原型和常量定义抽取模块具体执行以下步骤:
步骤1121:函数原型和常量定义抽取模块装载头文件;
步骤1122:选择对应的抽取规则;
步骤1123:逐行解析头文件;
步骤1124:抽取出函数原型、常量,加到函数原型、常量列表中,生成常量列表和函数列表对象;
步骤1125:判断是否为最后一行,如是则执行步骤1126,如否则执行步骤1123;
步骤1126:保存为函数原型及常量列表文件。
9.如权利要求6所述的用于加载动态链接库的代码自动生成装置,其特征在于,步骤6,代码模板和参数转换规则编辑模块具体执行以下步骤:
步骤1131:新建规则或者打开已有规则:
步骤1132:代码模板是根据目标代码手动编辑代码模板;
步骤1133:判断检索规则是否完整,如是行执行步骤1134,如否则执行步骤1132;
步骤1134:保存为新的规则后结束;参数转换规则是源参数到目标参数的转换;检查函数列表中变量类型是否都在参数转换规则中,如果未包含在转换规则中,则自动添加到规则后面,并由用户自己添加目标参数类型。
10.如权利要求6所述的用于加载动态链接库的代码自动生成装置,其特征在于,步骤3中,目标代码生成模块具体执行以下步骤:
步骤1141:加载准备好的函数原型、常量列表;
步骤1142:选择目标语言、加载方式,得到转换规则和代码模块;
步骤1143:选择需要生成的函数项、常量项集合;
步骤1144:转换为目标语言下的函数、常量列表;
步骤1145:依次执行,得到模板文件对象位置;
步骤1146:把函数和常量列表添加到模板位置;
步骤1147:判断函数项是否为集合中的最后一项,如是则执行步骤1148,如否则执行步骤1145;
步骤1148:保存目标语言代码,后结束。
CN201410567835.5A 2014-10-22 2014-10-22 一种用于加载动态链接库的代码自动生成方法及装置 Active CN104317589B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410567835.5A CN104317589B (zh) 2014-10-22 2014-10-22 一种用于加载动态链接库的代码自动生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410567835.5A CN104317589B (zh) 2014-10-22 2014-10-22 一种用于加载动态链接库的代码自动生成方法及装置

Publications (2)

Publication Number Publication Date
CN104317589A true CN104317589A (zh) 2015-01-28
CN104317589B CN104317589B (zh) 2017-08-25

Family

ID=52372824

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410567835.5A Active CN104317589B (zh) 2014-10-22 2014-10-22 一种用于加载动态链接库的代码自动生成方法及装置

Country Status (1)

Country Link
CN (1) CN104317589B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183490A (zh) * 2015-10-16 2015-12-23 百度在线网络技术(北京)有限公司 将离线处理逻辑迁移至实时处理框架的方法和装置
CN105739981A (zh) * 2016-01-28 2016-07-06 厦门飞信网络科技有限公司 一种代码补全实现方法、装置和计算设备
CN106033367A (zh) * 2015-03-18 2016-10-19 广州四三九九信息科技有限公司 一种脚本游戏服务器引擎
CN106407111A (zh) * 2016-09-07 2017-02-15 努比亚技术有限公司 终端测试装置、终端测试设备及变量维护方法
CN106897080A (zh) * 2015-12-18 2017-06-27 北京国双科技有限公司 动态链接库的处理方法及装置
CN107247582A (zh) * 2017-04-14 2017-10-13 惠州市蓝微新源技术有限公司 一种自动生成can发送和接收代码的方法
CN108829395A (zh) * 2018-06-19 2018-11-16 中国电子科技集团公司第四十研究所 一种面向信号驱动程序代码自动生成方法及装置
CN108920149A (zh) * 2017-03-29 2018-11-30 华为技术有限公司 编译方法和编译装置
CN109117128A (zh) * 2018-06-23 2019-01-01 上海泽阳智能科技有限公司 一种实现相同目标的编程系统
CN111880779A (zh) * 2020-07-17 2020-11-03 盛视科技股份有限公司 一种系统应用源代码生成方法及装置
CN111930413A (zh) * 2020-05-22 2020-11-13 无锡中感微电子股份有限公司 一种补丁自动生成方法、装置及系统
CN112100057A (zh) * 2020-08-19 2020-12-18 中国电子科技集团公司第二十九研究所 基于动态链接库的仪器集成控制封装方法、介质和装置
CN113391817A (zh) * 2021-06-16 2021-09-14 中国海洋大学 基于antlr4的头文件替换方法及装置
CN114064114A (zh) * 2021-11-19 2022-02-18 云控智行科技有限公司 一种动态库生成方法及装置
CN116955300A (zh) * 2023-09-18 2023-10-27 云南瀚文科技有限公司 一种基于标签技术的文件生成方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070266378A1 (en) * 2006-05-12 2007-11-15 Hitachi Software Engineering Co., Ltd. Source code generation method, apparatus, and program
CN101976196A (zh) * 2010-11-19 2011-02-16 重庆大学 一种面向“服务质量”的代码自动生成方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070266378A1 (en) * 2006-05-12 2007-11-15 Hitachi Software Engineering Co., Ltd. Source code generation method, apparatus, and program
CN101976196A (zh) * 2010-11-19 2011-02-16 重庆大学 一种面向“服务质量”的代码自动生成方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
肖寒: "J2EE平台下代码自动生成技术研究", 《电脑知识与技术》 *
赵军: "基于模板的代码生成器的研究与实现", 《长春师范学院学报(自然科学版)》 *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106033367A (zh) * 2015-03-18 2016-10-19 广州四三九九信息科技有限公司 一种脚本游戏服务器引擎
CN105183490A (zh) * 2015-10-16 2015-12-23 百度在线网络技术(北京)有限公司 将离线处理逻辑迁移至实时处理框架的方法和装置
CN105183490B (zh) * 2015-10-16 2019-07-23 百度在线网络技术(北京)有限公司 将离线处理逻辑迁移至实时处理框架的方法和装置
CN106897080A (zh) * 2015-12-18 2017-06-27 北京国双科技有限公司 动态链接库的处理方法及装置
CN106897080B (zh) * 2015-12-18 2020-05-01 北京国双科技有限公司 动态链接库的处理方法及装置
CN105739981B (zh) * 2016-01-28 2020-03-06 厦门飞信网络科技有限公司 一种代码补全实现方法、装置和计算设备
CN105739981A (zh) * 2016-01-28 2016-07-06 厦门飞信网络科技有限公司 一种代码补全实现方法、装置和计算设备
CN106407111A (zh) * 2016-09-07 2017-02-15 努比亚技术有限公司 终端测试装置、终端测试设备及变量维护方法
CN108920149B (zh) * 2017-03-29 2020-12-08 华为技术有限公司 编译方法和编译装置
CN108920149A (zh) * 2017-03-29 2018-11-30 华为技术有限公司 编译方法和编译装置
CN107247582A (zh) * 2017-04-14 2017-10-13 惠州市蓝微新源技术有限公司 一种自动生成can发送和接收代码的方法
CN108829395A (zh) * 2018-06-19 2018-11-16 中国电子科技集团公司第四十研究所 一种面向信号驱动程序代码自动生成方法及装置
CN109117128A (zh) * 2018-06-23 2019-01-01 上海泽阳智能科技有限公司 一种实现相同目标的编程系统
CN111930413A (zh) * 2020-05-22 2020-11-13 无锡中感微电子股份有限公司 一种补丁自动生成方法、装置及系统
CN111930413B (zh) * 2020-05-22 2023-07-21 无锡中感微电子股份有限公司 一种补丁自动生成方法、装置及系统
CN111880779A (zh) * 2020-07-17 2020-11-03 盛视科技股份有限公司 一种系统应用源代码生成方法及装置
CN111880779B (zh) * 2020-07-17 2023-12-26 盛视科技股份有限公司 一种系统应用源代码生成方法及装置
CN112100057A (zh) * 2020-08-19 2020-12-18 中国电子科技集团公司第二十九研究所 基于动态链接库的仪器集成控制封装方法、介质和装置
CN113391817A (zh) * 2021-06-16 2021-09-14 中国海洋大学 基于antlr4的头文件替换方法及装置
CN113391817B (zh) * 2021-06-16 2022-08-26 中国海洋大学 基于antlr4的头文件替换方法及装置
CN114064114A (zh) * 2021-11-19 2022-02-18 云控智行科技有限公司 一种动态库生成方法及装置
CN116955300A (zh) * 2023-09-18 2023-10-27 云南瀚文科技有限公司 一种基于标签技术的文件生成方法及系统
CN116955300B (zh) * 2023-09-18 2023-11-28 云南瀚文科技有限公司 一种基于标签技术的文件生成方法及系统

Also Published As

Publication number Publication date
CN104317589B (zh) 2017-08-25

Similar Documents

Publication Publication Date Title
CN104317589A (zh) 一种用于加载动态链接库的代码自动生成方法及装置
CN104965714A (zh) 应用软件的代码生成方法和系统
CN106293664A (zh) 代码生成方法及装置
JP5798552B2 (ja) スクリーンキャプチャに関する方法、システムおよびコンピュータ・プログラム
US9317266B1 (en) Leveraging legacy applications for use with modern applications
CN103309647A (zh) 应用程序多语言支持系统及方法
CN110955410B (zh) 一种代码自动生成方法、装置、设备及介质
CN104461528A (zh) 一种可视化生成面向信号应用程序代码的方法及装置
CN104731588B (zh) 页面布局文件生成方法和页面布局文件生成装置
CN112860256B (zh) 一种Linux内核设备树的可视化配置系统和方法
CN104834600A (zh) 一种测试Android应用控件的方法
CN104375934A (zh) 一种Android手机软件可靠性测试方法
CN102955740A (zh) 一种基于Perl的驱动函数和桩函数生成方法
CN103631708A (zh) 程序测试方法及程序测试装置
KR101350798B1 (ko) 오프로스 플랫폼에 기반하여 제어되는 로봇 시스템 및 그 로봇 제어방법
CN111078217A (zh) 脑图生成方法、装置和计算机可读存储介质
CN106919374B (zh) 一种脚本生成方法和装置
CN101201750B (zh) 利用语法词法分析工具为编解码提供数据的方法
CN106383734A (zh) 一种从代码中提取详细设计的方法
CN110471659B (zh) 多语言实现方法和系统、人机界面组态软件端和设备端
CN106610898B (zh) 一种基于JPF的Java代码SSA单路径的生成方法
JP2008033913A (ja) Plcのプログラム開発支援装置
CN114036055A (zh) 一种xmind测试用例与jmeter脚本互转的系统
KR101476536B1 (ko) 프로그램 검수 방법 및 시스템
CN107861725B (zh) 一种iOS数据反向自动解析策略

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20190226

Address after: 266000 No. 98 Xiangjiang Road, Huangdao District, Qingdao City, Shandong Province

Patentee after: China Electronics Technology Instrument and Meter Co., Ltd.

Address before: 266555 No. 98 Xiangjiang Road, Qingdao economic and Technological Development Zone, Shandong

Patentee before: The 41st Institute of CETC

TR01 Transfer of patent right
CP01 Change in the name or title of a patent holder

Address after: 266000 No. 98 Xiangjiang Road, Huangdao District, Qingdao City, Shandong Province

Patentee after: CLP kesiyi Technology Co.,Ltd.

Address before: 266000 No. 98 Xiangjiang Road, Huangdao District, Qingdao City, Shandong Province

Patentee before: CHINA ELECTRONIC TECHNOLOGY INSTRUMENTS Co.,Ltd.

CP01 Change in the name or title of a patent holder