delphi activex "The OLE control does not suppor...

1. 今天为了帮同学解决一个问题, 在自己的 activex 上进行操作, 把自己写的 activex 进行反注册后, 再重新注册, 结果居然报 "The OLE control does not support self-registration".

(1). 注册 activex

clip_image001

(2). 报错 "The OLE control does not support self-registration"

clip_image002

 

2. 网上找了半天没找到解决方法; 既然说不支持"self-registration", 那我就手动注册好了, 在 cmd 里输入以下命令: regsvr32 ActiveSuDaPrintProj1.ocx, 结果还是报错: "模块已加载,但找不到入口点 DllRegisterServer".

clip_image003

 

3. 在自己的项目里搜了一遍, 确实没有 DllRegistrServer 函数, 随后在 .dpr 文件 看到 DllUnregisterServer, 就想着是不是少了 DllRegistrServer 函数, 手动加上后, 编译错误.

clip_image004

 

4. 找一个可以正常注册的 ocx 项目, 其 .dpr 文件如下

clip_image005

发现一共是少了3行, 把这三行加上去后, 问题解决.

 

5. 吐槽一下 delphi, 少了3行, 居然能正常编译, 在注册的时候报错也让人摸不着头脑, 如果不是使用 regsvr32 注册的时候报错信息比较明了, 还不知要怎么来解决这问题呢.

 

环境: windows7+delphi7

你可能感兴趣的:(Delphi,ActiveX)