dll自动注册出现的诡异现象 本帖最后由 Iamclq 于 2009-12-20 12:17:49 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 下午又试了一下,如果把方法中的语句全部注释掉,系统仍然会注册成功,不知是从何处注册的?procedure TMyFactory.UpdateRegistry(Register: Boolean);var dllpath: array[0..1023] of char;begin// inherited UpdateRegistry(Register);// GetModuleFileName(HInstance, dllpath, SizeOf(dllpath));// ShowMessage(dllpath); // 这里显示的是实际运行的dll路径// CreateRegKey('CLSID\' + GUIDTOSTRING(CLASSID), '', 'My');// CreateRegKey('CLSID\' + GUIDTOSTRING(CLASSID) + '\InProcServer32', '', dllpath); // 注册表里显示的却是dll的编译路径,上面传进去的参数也是实际运行的路径,真的是太奇怪了?// CreateRegKey('CLSID\' + GUIDTOSTRING(CLASSID) + '\InProcServer32', 'ThreadingModel', 'Apartment');end;全部注释后仍然也会自动注册 自动注册,是用Regsvr32.Exe吧? 对,是用 regsvr32 注册的 难道是 regsvr32 在自动注册? regsvr32除非调用它,否则不会自动注册的 我是指运行 regsvr32注册dll时,如果把更新注册表的语句删除后,注册表里仍然会注册进一些信息,不知是哪里自动注册的? regsvr32调用了DllRegisterServer方法注册的,DllRegisterServer最终还是调了UpdateRegistry方法的,你可以看看ComServ单元DllRegisterServer的实现。从你描述的情况确实很难断定问题出在哪里,我也不能妄加猜测,你可以写一些日志来跟踪这个流程。 谁说现代没有个人隐私!!没有安全!!! 一个月没有人能解决的问题,求高手帮助! 有用TAPI 3.0做过呼叫中心的程序吗,有话请给个例子 TTreeView的ShowLines属性简单问题! 200409 关于分辨率的问题。 用sql语句实现的decode效果,在table中如何实现? 马上给分 如何判断dbgrid中的一个字段的值是否修改了? Delphi有哪些比较好的UML建模工具(可直接生成Delphi类代码的)? 如何在IIS里设置虚拟目录 wordapplication控件怎么实现打印 fastreport4 安装编译出错
var
dllpath: array[0..1023] of char;
begin
// inherited UpdateRegistry(Register);// GetModuleFileName(HInstance, dllpath, SizeOf(dllpath));
// ShowMessage(dllpath); // 这里显示的是实际运行的dll路径
// CreateRegKey('CLSID\' + GUIDTOSTRING(CLASSID), '', 'My');
// CreateRegKey('CLSID\' + GUIDTOSTRING(CLASSID) + '\InProcServer32', '', dllpath);
// 注册表里显示的却是dll的编译路径,上面传进去的参数也是实际运行的路径,真的是太奇怪了?
// CreateRegKey('CLSID\' + GUIDTOSTRING(CLASSID) + '\InProcServer32', 'ThreadingModel', 'Apartment');end;全部注释后仍然也会自动注册
从你描述的情况确实很难断定问题出在哪里,我也不能妄加猜测,你可以写一些日志来跟踪这个流程。