今天老大布置了一个小任务,写个OCX给行里调用,并且他写好了接口,接口的名称都是这样的,xxxx_xx,中间发现VC6 OCX 方法external name不支持_命名,即命名中不能出现‘_’,然后我就将internal name 中的名字加_,最后发现编译出来的OCX死活调用不起来……以下是我今天的收获……
vc6 写OCX ,添加方法的时候会有一个external name 和internal name ,就是外部名称和内部名称,在VC6中外部名称和内部名称必须一样,如果不一样的话是无法调用这个方法的,不管你调用的时候的用外部名称还是内部名称,并且不支持下划线_,就是在命名中不能出现下划线_,在vs2010 中倒是可以,但是在vs2010中编译出来后无法再XP中注册,蛋疼啊!具体的原因不了解,有了解的可以分享一下,今天调了一天才发现这2个问题……一天的时间浪费了啊,记录一下,后面的人就不用浪费时间了。
另外如果XP下VC6 编译的OCX在win7 中无法注册,如果win7中你已经确定不是UAC的问题,那么应该就是依赖库的问题了,在vc6中选择静态编译即可,今天我也遇到这个问题,找了好久才发现时这个问题。