1. 配置 活动 Release
2. 项目->属性->配置属性->常规->MFC的使用 设为: 在静态库中使用MFC
3. 项目->属性->配置属性->C/C++->代码生成->运行库 谁为: 多线程(/MT)
如果编译出现如下类似错误:
nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCMT.lib(new.obj)
这样的错误, 明显就是被link到的library使用了相同名字的函数, 如果直接LIBCMT.里边是不行的,
因为他是C的library, 之所以发生这样的问题, 是因为MFC的库和C的库发生冲突, 必须设置他们被link的顺序,
也就是先nafxcw.lib再LIBMT.lib, 既然这样, 那我们就强制设置一下他们的link顺序吧, 如下:
//首先将这两库Ingnore掉
1. 项目->属性->配置属性->连接器->输入->忽略特定默认库 中添加: uafxcw.lib;LIBCMT.lib
//然后重新附加
2. 项目->属性->配置属性->连接器->输入->附加依赖项 中添加: uafxcw.lib;LIBCMT.lib
这样就成功发布了你的应用