而如果你在自己的程序中通过调用这些API函数来进行注册,虽然看起来复杂得多,但是这个时候注册过程已经成为你的程序的虚冲一部分,你可以完全摆脱regsvr32.exe这个外部程序了,即使把你的程序拿到没有regsvr32.exe的电脑中(虽然这种情况很少见)也能运行了。
打个比方,如果你的车脏了,那么你有两种洗车方法供选择:一是开到专门的洗车店接受专业的洗车服务,你可以在一边悠闲地看报纸等他们洗完,你只需付款即差粗歼可,当然究竟洗得干不干净自己心里是没底的(这就是用shell的调用方法);二是自己来洗,虽然会觉得很累,但自己可以里里外外慢慢洗,可以洗得非常干净(这就是使用api函数的方法)。
补充一句:从专业角度来看,用后一种方法会显得你的程序很专业,而用shell调用外部程序的做法则显得不够专业,因为通常这是一种自己无能为力的时候不得不借助外力的无奈之举。
DLL本来就是属于函数库,是用来共享的,也就是说即使是你自己生成的DLL也不是专供你自己的孙瞎程序使用的,名义上是大家都可以用的,所以它必须经过系统注册的流程,以便通知其他应用程序如何找到这个DLL(即使没有任何其他程序需要用到这个DLL这个注册也是不能省的)。如嫌凯知果你不希望这样,那么就不要采用DLL形式,做成内部函数即可。或者你也可以利用VB自带的打包芹消程序,把你做的程序生成一个安装文件,记得要把DLL文件包含进去,这样安装程序会自动帮你执行注册的流程。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)