文件处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:34537724 阅读:25 留言:0更新日期:2022-08-13 21:32
本发明专利技术实施例提供一种文件处理方法、装置、电子设备及存储介质,该方法包括:获取二进制数据文件,二进制数据文件由动态库文件转换得到,动态库文件用于提供能够被调用的第一函数;将二进制数据文件引入到第一代码文件中,第一代码文件包括基于delphi编写的第一delphi程序或第一dcu库文件的源代码,第一代码文件用于调用至少一个第二函数,第二函数包含于第一函数;将第一代码文件中至少一个第二函数的函数入口地址,分别修改为二进制数据文件中与至少一个第二函数对应的数据的地址,得到第二代码文件;基于delphi编译第二代码文件,得到第二delphi程序或第二dcu库文件。采用上述方案,可有效避免不同用户之间delphi版本不同而导致库文件不能通用的问题。不同而导致库文件不能通用的问题。不同而导致库文件不能通用的问题。

【技术实现步骤摘要】
文件处理方法、装置、电子设备及存储介质


[0001]本申请涉及计算机信息
,具体涉及文件处理方法、装置、电子设备及存储介质。

技术介绍

[0002]库文件是计算机上的一类文件,提供给使用者一些开箱即用的变量、函数或类。在操作系统中,许多应用程序并不是只有一个完整的可执行文件,大多数程序模块被分割成一些相对独立的动态库文件。当计算机执行某一个程序时,相应的动态库文件可以被调用。
[0003]目前,由Delphi生成的库文件也被称为dcu库文件,是带有delphi的版本信息的,例如:delphi 10.3版本生成的dcu库文件带有delphi 10.3版本的信息。dcu库文件的版本信息与delphi版本不匹配会产生冲突,导致无法正常使用。例如,前述dcu库文件只能在delphi 10.3版本中使用。如果想在delphi 10.4版本中使用,需要重新在delphi 10.4版本中进行编译,得到带有delphi 10.4版本信息的dcu库文件,然而这将会导致额外的工作量。

技术实现思路

[0004]为了克服现有技术的不足,本申请提供一种文件处理方法、装置及存储介质,来避免不同用户之间delphi版本不同而不能通用一个库文件的问题,进而减少上下游用户的工作量以及使用限制。
[0005]第一方面,本专利技术实施例提供一种文件处理方法,应用于第二设备,所述第二设备上安装有delphi,包括:
[0006]获取二进制数据文件,所述二进制数据文件由动态库文件转换得到,所述动态库文件用于提供能够被调用的第一函数;
[0007]将所述二进制数据文件引入到第一代码文件中,所述第一代码文件包括基于所述delphi编写的第一delphi程序或第一dcu库文件的源代码,所述第一代码文件用于调用至少一个第二函数,所述第二函数包含于所述第一函数;
[0008]将所述第一代码文件中所述至少一个第二函数的函数入口地址,分别修改为所述二进制数据文件中与所述至少一个第二函数对应的数据的地址,得到第二代码文件;
[0009]基于所述delphi编译所述第二代码文件,得到第二delphi程序或第二dcu库文件。
[0010]可选地,该方法还包括:
[0011]获取第三文件,所述第三文件用于指示所述动态库文件提供的第一函数的函数名称与函数序号的映射关系;
[0012]基于所述映射关系,确定所述至少一个第二函数各自的函数名称对应的函数序号;
[0013]基于所述至少一个第二函数各自的函数序号,确定所述二进制数据文件中与所述至少一个第二函数各自对应的数据的地址。
[0014]可选地,第三函数为所述至少一个第二函数中的任一个;
[0015]基于所述至少一个第二函数各自的函数序号,确定所述二进制数据文件中与所述至少一个第二函数各自对应的数据的地址,包括:
[0016]确定所述二进制数据文件在引入所述二进制数据文件后的第一代码文件中的第一位置;
[0017]基于所述第三函数的函数序号,确定所述第三函数对应的数据在所述二进制数据文件中的第二位置;
[0018]基于所述第一位置和所述第二位置,确定所述第三函数对应的数据的地址。
[0019]可选地,所述二进制数据文件由第一设备利用转换程序转换动态库文件得到,所述第三文件由所述第一设备生成,所述第一设备为所述动态库文件的开发者所使用的设备。
[0020]可选地,所述第一设备上无需安装delphi,且所述第二设备上安装的delphi为任意版本的delphi。
[0021]可选地,所述第二delphi程序或第二dcu库文件能够被独立交付给第三设备,所述第二delphi程序能够在第三设备上运行;或者,
[0022]所述第二delphi程序或所述第二dcu库文件能够在所述第三设备上被用于开发基于delphi的第三delphi程序或第三dcu库文件。
[0023]可选地,所述动态库文件适用于Windows操作系统。
[0024]第二方面,本专利技术实施例还提供一种文件处理装置,应用于第二设备,所述第二设备上安装有delphi,包括:
[0025]获取模块,被配置为获取二进制数据文件,所述二进制数据文件由动态库文件转换得到,所述动态库文件用于提供能够被调用的第一函数;
[0026]引入模块,被配置为将所述二进制数据文件引入到第一代码文件中,所述第一代码文件包括基于所述delphi编写的第一delphi程序或第一dcu库文件的源代码,所述第一代码文件用于调用至少一个第二函数,所述第二函数包含于所述第一函数;
[0027]编译模块,被配置为将所述第一代码文件中所述至少一个第二函数的函数入口地址,分别修改为所述二进制数据文件中与所述至少一个第二函数对应的数据的地址,得到第二代码文件;以及,基于所述delphi编译所述第二代码文件;
[0028]输出模块,被配置为输出编译得到的第二delphi程序或第二dcu库文件。
[0029]第三方面,本专利技术实施例还提供一种电子设备,该电子设备包括处理器和存储器,并且还安装有delphi;所述存储器上存储有预定的计算机指令,所述处理器用于运行所述预定的计算机指令,以实现第一方面的任一种方法的部分或全部步骤。
[0030]第四方面,本专利技术实施例还提供一种计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令由处理器执行时,实现第一方面的任一种方法的部分或全部步骤。
附图说明
[0031]图1为基于delphi开发dcu库文件的一个示例性的应用场景的架构示意图;
[0032]图2为本申请实施例提供的方法的一个示例性的应用场景的架构示意图;
[0033]图3为本专利技术实施例的其中一种文件处理方法的流程图;
[0034]图4为本专利技术实施例的其中一种文件处理方法的部分步骤的流程图;
[0035]图5为本专利技术实施例的文件处理装置的框图。
具体实施方式
[0036]为了使得本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例的附图,对本专利技术实施例的技术方案进行清楚、完整地描述。
[0037]下面将对本专利技术实施例中出现的一些概念做简要说明。
[0038]delphi:一款可视化开发工具,可在Windows3.x、Windows95、WindowsNT、WindowsXP、WindowsVista、Windows7、Windows8、Windows8.1、Windows10、Linux、OS X、iOS、Android等环境下使用,采用面向对象的编程语言ObjectPascal和基于部件的开发结构框架,还提供了各种开发工具,包括集成环境、编译器、图像编辑(Image Fditor),以及各种开发数据库的应用程序,如DesktopDataBase Expert等。
[0039]delphi程序:使用Delphi编写的代码,这些本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文件处理方法,其特征在于,应用于第二设备,所述第二设备上安装有delphi,包括:获取二进制数据文件,所述二进制数据文件由动态库文件转换得到,所述动态库文件用于提供能够被调用的第一函数;将所述二进制数据文件引入到第一代码文件中,所述第一代码文件包括基于所述delphi编写的第一delphi程序或第一dcu库文件的源代码,所述第一代码文件用于调用至少一个第二函数,所述第二函数包含于所述第一函数;将所述第一代码文件中所述至少一个第二函数的函数入口地址,分别修改为所述二进制数据文件中与所述至少一个第二函数对应的数据的地址,得到第二代码文件;基于所述delphi编译所述第二代码文件,得到第二delphi程序或第二dcu库文件。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取第三文件,所述第三文件用于指示所述动态库文件提供的第一函数的函数名称与函数序号的映射关系;基于所述映射关系,确定所述至少一个第二函数各自的函数名称对应的函数序号;基于所述至少一个第二函数各自的函数序号,确定所述二进制数据文件中与所述至少一个第二函数各自对应的数据的地址。3.根据权利要求2所述的方法,其特征在于,第三函数为所述至少一个第二函数中的任一个;基于所述至少一个第二函数各自的函数序号,确定所述二进制数据文件中与所述至少一个第二函数各自对应的数据的地址,包括:确定所述二进制数据文件在引入所述二进制数据文件后的第一代码文件中的第一位置;基于所述第三函数的函数序号,确定所述第三函数对应的数据在所述二进制数据文件中的第二位置;基于所述第一位置和所述第二位置,确定所述第三函数对应的数据的地址。4.根据权利要求2

3任一项所述的方法,其特征在于,所述二进制数据文件由第一设备利用转换程序转换动态库文件得到,所述第三文件由所述第一设备生成,所述第一设备为所述动态库文件的开发者所使用的设备。5.根据权利要求1

4任一项...

【专利技术属性】
技术研发人员:孙吉平杨志鹏
申请(专利权)人:北京深思数盾科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1