关于MFC 常规DLL的一点疑惑
刚接触DLL ,有一点不明白,“在MFC规则DLL的内部虽然可以使用MFC,但是其与应用程序的接口不能是MFC”这句话是什么意思?到底有哪些限制?我用的VS2010,调用DLL的接口函数传CString CRect CDC 等类型的参数都没问题。 mfc
[解决办法]
应该是说MFC DLL对外提供的函数接口,其参数建议是使用标准的C++类型,而不是MFC的封装类,这样对于非MFC的应用程序,在使用时,就不会出现接口参数类型不兼容的情况。
而且即便都是MFC类型的EXE或者DLL,不同版本的VS编译出来的模块,也存在不兼容的问题,需要使用同版本、同SDK编译的情况。
[解决办法]
DLL更多的应用是给windows下其他程序调用用的,但你不能保证其他程序都是MFC编写的吧,如果你的DLL接口使用了MFC特有类型,那么你的DLL只能提供给MFC程序调用,其他程序调用时会出错。