2020.7.13工作记录————VS2015生成控件或动态库依赖MFC库解决方法

工作记录————VS2015生成控件或动态库依赖MFC库解决方法

今天我将自己在WIN10系统下VS2015生成的ocx控件交给同事使用,发现他在他的WIN7环境电脑下无法正确注册控件,而换到WIN10的电脑上后注册成功。

经过排查,使用depends工具查看了ocx控件的依赖后发现,我的控件除了依赖了本来需要的第三方动态库外还依赖了MFC库,这应该是Windows和VS的标准库,所以同事在WIN7下无法正确注册的原因也找到了,我给他的控件必须有我这里系统版本的MFC库接口才能正确注册。

所以现在需要解决的就是如何使我的控件Release版本同时Release出配套版本的MFC库而不需要额外依赖。

经过百度得知解决方法很简单,首先先编写代码,完成自己的控件的工程文件。
下一步是在项目-》属性-》配置属性-》常规-》MFC的使用中,将" 在共享DLL中使用MFC “改为” 在静态库中使用MFC ",
2020.7.13工作记录————VS2015生成控件或动态库依赖MFC库解决方法

然后再在项目-》属性-》配置属性-》C/C+±》代码生成-》运行库中将" 多线程DLL(/MD) “改为” 多线程(/MT)”。
2020.7.13工作记录————VS2015生成控件或动态库依赖MFC库解决方法

之后再次生成控件即可,现在的Release版本不再依赖于MFC库,可以在别的Windows系统上进行注册。