最近写了一个ActiveX控件,使用MFC,控件中添加方法,其中调用BCB编写的一个dll进行读卡器的读卡并且返回卡号给前端页面,前台用JS调用activex控件的方法。
测试中发现,BCB写好的dll,在Activex中加载时总是提示缺失相应模块文件,使用depends查看dll后解决所有依赖项目,并且使用BCB编写测试程序对该dll进行加载,发现测试exe可以加载该dll,但是activex中加载dll还是失败。
对dll的BCB工程的编译项进行调整后才发现必须进行三项设置
1.release模式,这个无可厚非,发布的程序当然应该使用release进行编译
2.去除PACKAGE勾选
3.去除RTL的勾选(LINKER标签中的)这个是必须的,之前就是漏了这个才导致activex加载dll失败的。