在使用mfc开发dll时,如果我们导出的类中使用了像CString等模板类的话,就会提示4251的编译警告,可以用两种方法来消除。
1、将工程的MFC使用改为“在共享dll中使用mfc”,编译时就没有了4251的警告信息。
2、如果项目只允许使用“在静态库中使用mfc”,那就在工程中添加以下两个语句:
template class _declspec(dllexport) CStringT<char,StrTraitMFC< char >>;
template class _declspec(dllexport) CStringT<TCHAR, StrTraitMFC< TCHAR >>;
将CString导出以下即可,使用到的其他模板类也采用这种方法导出即可。