运行库,是语言为特定操作系统写好的公共函数仓库,用于实现系统经常调用的功能,主要以DLL文件的形式存在。旧式的程序,把所有的指令都以机器码形式储存在exe文件中,即使两个不同的程序使用同一个函数,也是分别存放于两个程序中的,亦即有两份重复的代码。当软件数量比较少时,这种形式问题不大,但软件的数量一旦庞大起来,一百个程序就有一百个复制品重复占据磁盘空间,浪费事小,更大的问题是一旦这个公用的函数需要改动,就必须把用到它的一百个程序重新编译、连接一次,如果有遗漏,软件的版本就各不相同,行为怪异(调用同样的函数有不同的现象),这是很不方便的。为了解决类似问题,就提出了DLL运行库的概念,把所有软件都用到的功能,只存放一份实物,那么软件的体积会大大减少,表现也会一致起来。典型的Windows三个核心DLL库(USER、KERNEL、GDI)就是如此。现代的开发语言,随着软件版本的变迁,函数库也会变化,用这些函数库开发的软件,都必须安装对应的运行库用以支撑。在Windows操作系统中,已经不存在把所有指令都汇集于可执行文件的情况了,简单到你要在屏幕(控制台)上显示一个字符,也是要使用系统内核运行库的,类似TC那种编译软件,即使把机器指令连在exe文件也是白连,操作系统根本不会允许这个程序使用这种指令,它会强行接管废了你那些指令(这就是当今再用TC开发软件其实是幻象的原因),如果这个程序有所反抗,操作系统马上把它踢出去。
楼主的问题,其实就是不同版本的开发语言,对应不同版本的运行库DLL,发布程序时,为预防目标机器没有相同版本的运行库,最好自己附带一套,否则这个程序会因找不到运行函数而无法执行的。
楼主的问题,其实就是不同版本的开发语言,对应不同版本的运行库DLL,发布程序时,为预防目标机器没有相同版本的运行库,最好自己附带一套,否则这个程序会因找不到运行函数而无法执行的。
授人以渔,不授人以鱼。