为什么DLL文件要用Regsvr32注册后才能使用?用Regsvr32注册Dll文件起到什么作用?Regsvr32命令注册dll文件时,都注册了那些内容,是dll文件的位置吗?
使用dll文件的应用程序是利用dll文件的入口函数调用的,windows系统知道与否有什么关系?又不是windows系统调用dll文件?

解决方案 »

  1.   

    普通DLL是不用注册嘀.只有com组件才需要注册,注册时他把clsid和progid(可选)及DLL的路径写到注册表中.
    于是用这些组件的客户端在创建该组件时就不用知道他的路径.
    只需调用cocreateinstance并传入clsid,系统就能创建该组件的实例了.
      

  2.   

    楼主所说的是进程内COM组件,注册是把该组件中的COM对象的信息全都记录到系统注册表中
    比如clsid 和 DLL所在的路径