文件处理方法、装置、电子设备及存储介质与流程

文档序号:31135377发布日期:2022-08-13 11:21阅读:64来源:国知局
文件处理方法、装置、电子设备及存储介质与流程

1.本技术涉及计算机信息技术领域,具体涉及文件处理方法、装置、电子设备及存储介质。


背景技术:

2.库文件是计算机上的一类文件,提供给使用者一些开箱即用的变量、函数或类。在操作系统中,许多应用程序并不是只有一个完整的可执行文件,大多数程序模块被分割成一些相对独立的动态库文件。当计算机执行某一个程序时,相应的动态库文件可以被调用。
3.目前,由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库文件,然而这将会导致额外的工作量。


技术实现要素:

4.为了克服现有技术的不足,本技术提供一种文件处理方法、装置及存储介质,来避免不同用户之间delphi版本不同而不能通用一个库文件的问题,进而减少上下游用户的工作量以及使用限制。
5.第一方面,本发明实施例提供一种文件处理方法,应用于第二设备,所述第二设备上安装有delphi,包括:
6.获取二进制数据文件,所述二进制数据文件由动态库文件转换得到,所述动态库文件用于提供能够被调用的第一函数;
7.将所述二进制数据文件引入到第一代码文件中,所述第一代码文件包括基于所述delphi编写的第一delphi程序或第一dcu库文件的源代码,所述第一代码文件用于调用至少一个第二函数,所述第二函数包含于所述第一函数;
8.将所述第一代码文件中所述至少一个第二函数的函数入口地址,分别修改为所述二进制数据文件中与所述至少一个第二函数对应的数据的地址,得到第二代码文件;
9.基于所述delphi编译所述第二代码文件,得到第二delphi程序或第二dcu库文件。
10.可选地,该方法还包括:
11.获取第三文件,所述第三文件用于指示所述动态库文件提供的第一函数的函数名称与函数序号的映射关系;
12.基于所述映射关系,确定所述至少一个第二函数各自的函数名称对应的函数序号;
13.基于所述至少一个第二函数各自的函数序号,确定所述二进制数据文件中与所述至少一个第二函数各自对应的数据的地址。
14.可选地,第三函数为所述至少一个第二函数中的任一个;
15.基于所述至少一个第二函数各自的函数序号,确定所述二进制数据文件中与所述至少一个第二函数各自对应的数据的地址,包括:
16.确定所述二进制数据文件在引入所述二进制数据文件后的第一代码文件中的第一位置;
17.基于所述第三函数的函数序号,确定所述第三函数对应的数据在所述二进制数据文件中的第二位置;
18.基于所述第一位置和所述第二位置,确定所述第三函数对应的数据的地址。
19.可选地,所述二进制数据文件由第一设备利用转换程序转换动态库文件得到,所述第三文件由所述第一设备生成,所述第一设备为所述动态库文件的开发者所使用的设备。
20.可选地,所述第一设备上无需安装delphi,且所述第二设备上安装的delphi为任意版本的delphi。
21.可选地,所述第二delphi程序或第二dcu库文件能够被独立交付给第三设备,所述第二delphi程序能够在第三设备上运行;或者,
22.所述第二delphi程序或所述第二dcu库文件能够在所述第三设备上被用于开发基于delphi的第三delphi程序或第三dcu库文件。
23.可选地,所述动态库文件适用于windows操作系统。
24.第二方面,本发明实施例还提供一种文件处理装置,应用于第二设备,所述第二设备上安装有delphi,包括:
25.获取模块,被配置为获取二进制数据文件,所述二进制数据文件由动态库文件转换得到,所述动态库文件用于提供能够被调用的第一函数;
26.引入模块,被配置为将所述二进制数据文件引入到第一代码文件中,所述第一代码文件包括基于所述delphi编写的第一delphi程序或第一dcu库文件的源代码,所述第一代码文件用于调用至少一个第二函数,所述第二函数包含于所述第一函数;
27.编译模块,被配置为将所述第一代码文件中所述至少一个第二函数的函数入口地址,分别修改为所述二进制数据文件中与所述至少一个第二函数对应的数据的地址,得到第二代码文件;以及,基于所述delphi编译所述第二代码文件;
28.输出模块,被配置为输出编译得到的第二delphi程序或第二dcu库文件。
29.第三方面,本发明实施例还提供一种电子设备,该电子设备包括处理器和存储器,并且还安装有delphi;所述存储器上存储有预定的计算机指令,所述处理器用于运行所述预定的计算机指令,以实现第一方面的任一种方法的部分或全部步骤。
30.第四方面,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令由处理器执行时,实现第一方面的任一种方法的部分或全部步骤。
附图说明
31.图1为基于delphi开发dcu库文件的一个示例性的应用场景的架构示意图;
32.图2为本技术实施例提供的方法的一个示例性的应用场景的架构示意图;
33.图3为本发明实施例的其中一种文件处理方法的流程图;
34.图4为本发明实施例的其中一种文件处理方法的部分步骤的流程图;
35.图5为本发明实施例的文件处理装置的框图。
具体实施方式
36.为了使得本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。
37.下面将对本发明实施例中出现的一些概念做简要说明。
38.delphi:一款可视化开发工具,可在windows3.x、windows95、windowsnt、windowsxp、windowsvista、windows7、windows8、windows8.1、windows10、linux、os x、ios、android等环境下使用,采用面向对象的编程语言objectpascal和基于部件的开发结构框架,还提供了各种开发工具,包括集成环境、编译器、图像编辑(image fditor),以及各种开发数据库的应用程序,如desktopdatabase expert等。
39.delphi程序:使用delphi编写的代码,这些代码可以被delphi中的编译器编译,得到可执行程序。也就是说,使用delphi开发出的可执行程序,在本技术中被称为delphi程序。
40.dcu库文件:使用delphi开发出的库文件,带有delphi版本信息。示例性地,dcu库文件的文件后缀可以是.dcu。
41.参见图1,图1为基于delphi开发dcu库文件的一个示例性的应用场景的架构示意图。其中,设备1为库文件开发者使用的电子设备,设备2为下游用户使用的电子设备,设备3为下游用户的下游用户(也可称为再下游用户)使用的电子设备。
42.设备1、设备2、设备3可以包括但不限于诸如手机、平板电脑、个人计算机(personal computer,pc)、可穿戴设备、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、个人数字助理(personal digital assistant,pda)等电子设备,本技术对于电子设备的具体产品形态/类型不作限定。
43.设备1和设备2中分别安装有delphi。库文件开发者可以通过其使用的设备(例如设备1)中的delphi中的编译器,将一段编写好的库代码编译为带有该delphi版本信息的dcu库文件(为便于区分,本示例中称之为dcu库文件1)。dcu库文件1可以被交付给下游用户。下游用户可以在其使用的设备(例如设备2)上,基于设备2上的delphi,对dcu库文件1继续开发或使用,以开发出delphi程序(为便于区分,本示例中称之为程序1)或者其他的dcu库文件(为便于区分,本示例中称之为dcu库文件2)。
44.设备1上安装有delphi需要与下游用户的所使用的设备2上安装的delphi版本一致。当库文件开发者交付给下游用户的dcu库文件1中的版本信息与该下游用户所使用的delphi版本不一致时,设备2中的delphi的编译器是无法基于该dcu库文件1来将下游用户自行编写的程序代码或者库代码编译成程序(即程序1)或者dcu库文件(即dcu库文件2)的,会有报错的情况发生。此时,下游用户往往需要将该报错的情况反馈给库文件开发者,库文件开发者则利用版本匹配的delphi重新对源代码编译,重新提供版本匹配的dcu库文件,以便下游用户可以正常使用。由于库文件开发者所开发的库文件可能被提供给多个不同的下游用户,当这些下游用户所使用的delphi的版本不同时,库文件开发者需要在自己使用的设备(例如设备1)中相应安装多个不同版本的delphi,分别编译出带有不同版本信息的多
个dcu库文件,以便提供给不同的下游用户。
45.下游用户在开发出程序1或者dcu库文件2之后,可以将其与dcu库文件1一起交付给再下游用户。再下游用户可以在其使用的设备(例如设备3)上,直接运行程序1,或者,基于设备3上的delphi,对程序1或dcu库文件2继续开发或使用,以开发出新的delphi程序(为便于区分,本示例中称之为程序2)或者其他的dcu库文件(为便于区分,本示例中称之为dcu库文件3)。可以理解的是,再下游用户也可以将其开发出的产品交付给其下游用户来使用或继续开发,其过程与前述过程类似,此处不再赘述。
46.可见,采用这样的方式会导致额外的工作量以及较为繁琐的使用限制。
47.本发明提供的一种文件处理方法、装置及存储介质。库文件开发者通过对动态库文件转换为二进制数据文件并交付给下游用户,使得下游用户可以避免直接使用dcu库文件,避免不同用户之间delphi版本不能通用同一个dcu库文件的问题。采用这样的方案,库文件开发者可以无需针对不同的用户提供不同版本的dcu库文件,甚至不要求安装delphi;下游用户可以基于任意可能的版本的delphi来正常调用库文件开发者所提供的库文件。此外,下游用户交付产品给再下游用户时也无需再一并交付库文件开发者所开发的dcu库文件。即,采用该方案可以减少上下游的工作量以及使用限制。
48.参见图2,图2为本技术实施例提供的方法的一个示例性的应用场景的架构示意图。
49.第一设备为库文件开发者使用的电子设备。第一设备上可以安装有delphi,也可以不安装delphi,无论是否安装都不影响本方案的执行。库文件开发者可以使用该电子设备来开发动态库文件,在这种情况下,第一设备上可以安装有用于开发动态库文件的必要的开发工具。当然,库文件开发者也可以使用其他可能的电子设备来开发动态库文件。
50.第二设备为下游用户使用的电子设备。第二设备上安装有delphi,但对其版本没有严格要求,下游用户可以根据其实际需求来选用能够满足需求的版本。也就是说,第二设备上安装的delphi可以为任意可能版本的delphi。
51.第三设备为再下游用户使用的电子设备。可以理解的是,当再下游用户只是运行下游用户交付的产品(例如delphi程序)时,对该设备上是否安装delphi可以不作要求。当再下游用户需要基于下游用户交付的产品(例如delphi程序或者dcu库文件)来继续开发时,第三设备上可能也需要安装delphi。
52.第一设备、第二设备、第三设备可以包括但不限于诸如手机、平板电脑、个人计算机(personal computer,pc)、可穿戴设备、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、个人数字助理(personal digital assistant,pda)等电子设备,本技术对于电子设备的具体产品形态/类型不作限定。
53.应理解,图2仅为示例性的架构,在一些情况下,该架构中还可以包括其他必要的设备,本技术对此不作限定。
54.下面将结合图3至图4对本发明实施例的方法做详细解释。
55.本发明的第一方面,如图3所示,提供一种文件处理方法,可以被应用于前述的第二设备。该方法可以包括步骤s10-s40。
56.步骤s10,获取二进制数据文件,所述二进制数据文件由动态库文件转换得到,所述动态库文件用于提供能够被调用的第一函数。
57.动态库文件,一般可以包含允许程序操作的函数和/或资源等。示例性地,windows系统下的动态库文件中包含了允许基于windows的程序在windows环境下操作的许多函数和资源。在windows中,动态库文件多数情况下是带有.dll扩展名的文件;在linux系统中,动态库文件多数情况下是带有.so扩展名的文件。
58.本技术实施例中的动态库文件是由库文件开发者所开发的文件。在一些示例性的实施例中,动态库文件中包含有一个或多个函数,不同函数可以用于实现相同或者不同的功能。这些功能可以由库文件开发者预先设定。为便于区分和描述,本技术实施例中将某一个动态库文件中提供的能够被调用的函数称为第一函数,后文亦将以该动态库文件为例来说明本技术所提供的文件处理方法。
59.在一些示例性的实施例中,在第一设备上安装有一款适用于windows操作系统的开发工具,通过该开发工具可以开发动态库文件。该开发工具可以是现有技术中的用于开发动态库的工具,例如visualstudio等。
60.二进制数据文件,一般是指包含在ascii及扩展ascii字符中编写的数据或程序指令的文件。
61.在本技术实施例中,库文件开发者可以在第一设备上将动态库文件转换为对应的二进制数据文件。该二进制数据文件所能够实现的功能与对应的动态库文件是一致的。
62.示例性地,库文件开发者通过windows系统下的开发工具生成的动态库文件可以是以dll为后缀的动态库文件,通过例如dll2inc等转换程序将动态库文件转换成二进制数据文件。
63.二进制数据文件可以由库文件开发者以任意可能的方式交付给下游用户。在一些实现方式中,库文件开发者可以使用电子设备(例如前述的第一设备),通过网络通信方式将二进制数据文件传输给下游用户所使用的第二设备,从而完成交付。在另一些实现方式中,库文件开发者也可以通过存储介质拷贝等其他可能的方式来实现交付。当下游用户需要在第二设备上使用该二进制数据文件时,再从存储介质上获取该二进制数据文件。
64.在一些实现方式中,库文件开发者还可以在第一设备上生成第三文件,该第三文件用于指示所述动态库文件提供的第一函数的函数名称与函数序号的映射关系。在交付的时候,库文件开发者可以将第三文件与二进制数据文件一并或者分别交付给下游用户,以便下游用户使用。
65.步骤s20,将所述二进制数据文件引入到第一代码文件中,所述第一代码文件包括基于所述delphi编写的第一delphi程序或第一dcu库文件的源代码,所述第一代码文件用于调用至少一个第二函数,所述第二函数包含于所述第一函数。
66.下游用户可以基于第二设备上安装的delphi或者其他可能的设备上安装的delphi来编写代码,开发出delphi程序或dcu库文件。这些delphi程序或dcu库文件可能需要调用库文件开发者所提供的库文件。下游用户可以根据不同的需求来调用库文件中的一个或多个函数。
67.为便于区分和描述,以下将某一个需要调用前述动态库文件的delphi程序称为第一delphi程序,将某一个需要调用前述动态库文件的dcu库文件称为第一dcu库文件;将该第一delphi程序或者第一dcu库文件所调用的动态库文件中的函数,称为第二函数。可以理解的是,第二函数必然是前述动态库文件所包含的第一函数中的函数,即第二函数包含于
第一函数。
68.在一些示例性的实施例中,第一代码文件包含下游用户使用delphi开发出来的第一delphi程序或者第一dcu库文件的源代码。可以理解的是,第一代码文件中包括用于调用至少一个第二函数的代码段,以使得第一代码文件能够用于调用至少一个第二函数。
69.在一些示例性的实施例中,可以在第一代码文件中通过添加一段功能代码来引入二进制数据文件。例如,第一代码文件可以是下游用户使用delphi开发出的一个程序a的源代码,在程序a代码中添加一段include()代码或者{$i二进制.inc文件}代码等,通过这种方式,二进制数据文件能够被引入到程序a的代码中。应理解,第二设备还可以采用其他可能的实现方式来将二进制数据文件引入到第一代码文件中。
70.步骤s30,将所述第一代码文件中所述至少一个第二函数的函数入口地址,分别修改为所述二进制数据文件中与所述至少一个第二函数对应的数据的地址,得到第二代码文件。
71.如前所述,第一代码文件中包括用于调用至少一个第二函数的代码段,其中涉及这些第二函数的函数入口地址。这些第二函数的函数地址入口可能是基于调用动态库文件的方式来编写的。在动态库文件被转换为二进制数据文件,并被引入到第一代码文件中之后,需要相应修改这些第二函数的函数地址入口,得到第二代码文件。这样,后续执行基于第二代码文件编译得到的产品时就可以顺利调用到相应的第二函数。
72.在一些示例性的实施例中,库文件开发者生成的动态库文件中预设有函数序号与函数名称的映射关系,在转换为二进制数据文件时该映射关系仍被保留。该映射关系使得第二设备可以据此来确定二进制数据文件中与第二函数对应的数据的地址,进而可以将第二函数的函数入口地址,修改为对应的数据的地址。
73.在示例性的一些实施例中,参见图4,第二设备所执行的方法还可以包括以下s50至s70的步骤,来确定二进制数据文件中与第二函数对应的数据的地址。
74.步骤s50,获取第三文件,所述第三文件用于指示所述动态库文件提供的第一函数的函数名称与函数序号的映射关系。
75.在一些示例性的实施例中,由于保留的函数序号与函数名称的映射关系可能无法直接被第二设备上的delphi读取,或者,第二设备仅仅依据二进制数据文件,无法确定其中哪一个数据块对应的是哪一个第一函数,因此可以额外附加一个用于指示该映射关系的文件,配合二进制数据文件一并交付。
76.步骤s60,基于所述映射关系,确定所述至少一个第二函数各自的函数名称对应的函数序号。
77.步骤s70,基于所述至少一个第二函数各自的函数序号,确定所述二进制数据文件中与所述至少一个第二函数各自对应的数据的地址。
78.在一些示例性的实施例中,第二设备可以基于第一代码文件,确定第一代码文件中所涉及的第二函数的函数名。在第二设备获取到二进制数据文件和第三文件后,可以基于第三文件,分别确定这些第二函数的函数名各自对应的函数序号;然后分别基于这些函数序号,从二进制数据文件中确定出这些第二函数对应的数据块,进而确定第二函数各自对应的数据的地址。
79.在一些示例性的实施例中,第三文件可以为pas文件,pas文件由库文件开发者生
成后交付给下游用户,该文件具备memory dll loading code模式,通过getfunaddress可以获取函数名,通过函数名可以确定对应的函数序号,以及通过@func=getfunaddress(pansichar(序号)),可以确定一个函数序号对应的函数在二进制数据文件中的地址。
80.在一些示例性的实施例中,为便于区分和描述,可以将下游用户所调用的函数集合(即第二函数的集合中的任意一个函数,称为第三函数。对于每一个第三函数而言,都需要确定该第三函数对应的二进制数据的地址,然后将第一代码文件中该函数入口地址修改为该函数对应的二进制数据的地址。对于不同的第三函数而言,确定该第三函数对应的二进制数据的地址的方式可以相同,也可以不同,本技术对此不作限定。
81.在其中一种示例性的实现方式中,可以包括以下步骤:
82.s701,确定二进制数据文件在引入二进制数据文件后的第一代码文件中的第一位置;
83.s702,基于某一个第三函数的函数序号,确定该第三函数对应的数据在二进制数据文件中的第二位置;
84.s703,基于第一位置和第二位置,确定该第三函数对应的数据的地址。
85.示例性地,沿用前述第一代码文件为程序a代码的例子,下游用户在引入二进制数据文件后,首先能够确定二进制数据文件在整个程序a代码中的位置,然后基于第三函数存在函数序号与函数名称的映射关系,能够确定第三函数在二进制数据文件中对应的二进制数据的位置,最后根据这两个能够被确定的位置,得到第三函数对应的二进制数据在整个程序a代码中的地址。
86.应理解,本技术实施例对步骤s50至s70与其他步骤之间的先后顺序不作限定,只要其逻辑上不矛盾即可。示例性地,上述步骤s50可以在步骤s10之前或之后执行,也可以与步骤s10同时执行。又示例性地,步骤s60和s70,必然在步骤s10之后执行,并且必然在步骤s40之前执行。还示例性地,步骤s701在步骤s20之后执行,可以在s50、s60之前或之后执行,也可以与其同时执行。
87.步骤s40,基于所述delphi编译所述第二代码文件,得到第二delphi程序或第二dcu库文件。
88.基于delphi进行编译的实现方式可以采用现有技术中可能的编译方式,本技术对此不作限定。编译得到的是delphi程序还是dcu库文件,可以由下游用户在编写第一代码文件和/或编译的时候根据实际业务需求来实现。
89.在一些示例性的实施例中,在得到带有下游用户开发的功能等的第二delphi程序或第二dcu库文件后,下游用户还可以将该第二delphi程序或第二dcu库文件独立交付给再下游用户,而无须将动态库文件、二进制数据文件或者第三文件一并交付给再下游用户。
90.再下游用户可以在其所使用的第三设备上运行该第二delphi程序,或者,基于该第二delphi程序或第二dcu库文件,继续开发出其他的程序或者库文件,例如第三delphi程序或者第三dcu文件。第二delphi程序或第二dcu库文件在执行或者被调用的时候,例如计算机这样的电子设备可以将二进制数据文件直接加载在第二delphi程序或调用第二dcu库文件的程序的内存中去执行,无需将二进制数据文件或者动态库文件释放到计算机本地。
91.可以理解的是,当再下游用户需要继续开发的时候,其使用的第三设备中需要安装必要的开发工具。尤其是当再下游用户需要调用第二dcu库文件的时候,其使用的第三设
备中需要安装delphi,并且,第三设备中安装的delphi的版本需要与第二设备中的delphi的版本一致。
92.还可以理解的是,再下游用户所继续开发出的程序,可能是delphi程序,也可能是其他类型的程序,所继续开发出的库文件,可能是dcu库文件,也可能是其他类型的库文件。
93.本发明的第二方面,如图5所示,提供一种文件处理装置,应用于第二设备,所述第二设备上安装有delphi,该文件处理装置包括:
94.获取模块,被配置为获取二进制数据文件,所述二进制数据文件由动态库文件转换得到,所述动态库文件用于提供能够被调用的第一函数;
95.引入模块,被配置为将所述二进制数据文件引入到第一代码文件中,所述第一代码文件包括基于所述delphi编写的第一delphi程序或第一dcu库文件的源代码,所述第一代码文件用于调用至少一个第二函数,所述第二函数包含于所述第一函数;
96.编译模块,被配置为将所述第一代码文件中所述至少一个第二函数的函数入口地址,分别修改为所述二进制数据文件中与所述至少一个第二函数对应的数据的地址,得到第二代码文件;以及,基于所述delphi编译所述第二代码文件;
97.输出模块,被配置为输出编译得到的第二delphi程序或第二dcu库文件。
98.可选地,所述获取模块还可以配置为:获取第三文件,所述第三文件用于指示所述动态库文件提供的第一函数的函数名称与函数序号的映射关系;
99.所述处理装置还包括:确定模块。该确定模块可以被配置为:基于所述映射关系,确定所述至少一个第二函数各自的函数名称对应的函数序号;以及基于所述至少一个第二函数各自的函数序号,确定所述二进制数据文件中与所述至少一个第二函数各自对应的数据的地址。
100.可选地,所述确定模块还可以被配置为:确定所述二进制数据文件在引入所述二进制数据文件后的第一代码文件中的第一位置;基于所述第三函数的函数序号,确定所述第三函数对应的数据在所述二进制数据文件中的第二位置;基于所述第一位置和所述第二位置,确定所述第三函数对应的数据的地址。其中,第三函数为所述至少一个第二函数中的任一个。
101.处理装置的部分与前述处理方法具有相同的特性,可以参考前述方法实施例中的相关描述,此处不再赘述。
102.本发明的第三方面,提供一种电子设备,包括处理器和存储器。该电子设备上安装有delphi。所述存储器上存储有预定的计算机指令,所述处理器用于运行所述预定的计算机指令,以实现前述方法实施例中的任一种方法的部分或全部步骤。
103.本发明的第四方面,提供一种计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令由处理器执行时,实现如上所述的任一种文件处理方法的部分或全部步骤。
104.在一些实施例中,执行算机可执行指令处理器可以是包括一个以上通用处理设备的处理设备,诸如微处理器、中央处理单元(cpu)、图形处理单元(gpu)等。更具体地,该处理器可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器、运行其他指令集的处理器或运行指令集的组合的处理器。该处理器还可以是一个以上专用处理设备,诸如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信
号处理器(dsp)、片上系统(soc)等。
105.在一些实施例中,计算机可读存储介质可以为存储器,诸如只读存储器(rom)、随机存取存储器(ram)、相变随机存取存储器(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、电可擦除可编程只读存储器(eeprom)、其他类型的随机存取存储器(ram)、闪存盘或其他形式的闪存、缓存、寄存器、静态存储器、光盘只读存储器(cd-rom)、数字通用光盘(dvd)或其他光学存储器、盒式磁带或其他磁存储设备,或被用于储存能够被计算机设备访问的信息或指令的任何其他可能的非暂时性的介质等。
106.在一些实施例中,计算机可执行指令可以实现为多个程序模块,多个程序模块共同实现根据本公开中任何一项所述的文件处理方法。
107.本公开描述了各种操作或功能,其可以实现为软件代码或指令或者定义为软件代码或指令。
108.这样的内容可以是可以直接执行(“对象”或“可执行”形式)的源代码或差分代码(“delta”或“patch”代码)。这里描述的实施例的软件实现可以通过其上存储有代码或指令的制品提供,或者通过操作通信接口以通过通信接口发送数据的方法提供。机器或计算机可读存储介质可以使机器执行所描述的功能或操作,并且包括以可由机器(例如,计算显示设备、电子系统等)访问的形式存储信息的任何机制,例如可记录/不可记录介质(例如,只读存储器(rom)、随机存取存储器(ram)、磁盘存储介质、光存储介质、闪存显示设备等)。通信接口包括与硬连线、无线、光学等介质中的任何一种接口以与其他显示设备通信的任何机制,例如存储器总线接口、处理器总线接口、因特网连接、磁盘控制器等。通信接口可以通过提供配置参数和/或发送信号来配置以准备通信接口,以提供描述软件内容的数据信号。可以通过向通信接口发送一个或多个命令或信号来访问通信接口。
109.本公开的实施例的计算机可执行指令可以组织成一个或多个计算机可执行组件或模块。可以用这类组件或模块的任何数量和组合来实现本公开的各方面。例如,本公开的各方面不限于附图中示出的和本文描述的特定的计算机可执行指令或特定组件或模块。其他实施例可以包括具有比本文所示出和描述的更多或更少功能的不同的计算机可执行指令或组件。
110.应理解,除非另外定义,本技术使用的技术术语或者科学术语为本技术所属领域内具有一般技能的人士所理解的通常意义。本技术中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现在该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,也可以包括电性的连接,不管是直接的还是间接的。
111.应理解,以上实施例仅为本公开的示例性实施例,不用于限制本公开,本公开的保护范围由权利要求书限定。本领域技术人员可以在本公开的实质和保护范围内,对本公开做出各种修改或等同替换,这种修改或等同替换也应视为落在本公开的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1