我有一个旧的 Access 应用程序。前几天它崩溃了,并且在压缩和修复期间崩溃了。经过一大堆谷歌搜索,我最终要做的是反编译 MDB,然后重新编译它,它会再次运行。
所以我的问题是,反编译 MDB 有什么作用,或者就此而言,编译 MDB 有什么作用?无论哪种方式,我都可以访问该代码,并且它在 VBA 代码编辑器中显示相同。那么它只是 MS Access MDB 内部的东西吗?
我有一个旧的 Access 应用程序。前几天它崩溃了,并且在压缩和修复期间崩溃了。经过一大堆谷歌搜索,我最终要做的是反编译 MDB,然后重新编译它,它会再次运行。
所以我的问题是,反编译 MDB 有什么作用,或者就此而言,编译 MDB 有什么作用?无论哪种方式,我都可以访问该代码,并且它在 VBA 代码编辑器中显示相同。那么它只是 MS Access MDB 内部的东西吗?
VBA 被编译为intermediate language
(如果我没记错的话,它被称为P-code
)。你看不到它。它嵌入到文件中。
当您将 MS-Access 数据库保存为 .mde 或 .accde 时,文件中仅存在已编译的版本。没有您可以看到的代码。
AFAIK:
您的代码几乎没有状态。您的干净文本代码,它会自动编译为我们称之为op-code
编译为Packed code
. 当它运行时,它使用 VM JIT 将其即时编译为机器代码。
当您的代码被编译并且您对源代码进行更改时,您会在运行应用程序时失去编译状态,然后它以debug
自动编译的操作码模式运行,直到您再次编译它。