VS开发工具学习

MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用

把项目-属性-连接器-系统-子系统中把控制台改为windows

-------------------------------------------------------------------------------------------------------------------

MessageBox中不能把字符串赋值个它的参数不能将参数 2 从“const char [11]”转换为“LPCWSTR”

把项目—属性—常规—字符集把使用 Unicode 字符集改为使用多字节字符集

-------------------------------------------------------------------------------------------------------------------

console程序支持MFC的类

在Project-> Setting-> General   中选Use   MFC   in   a   Shared   DLL或者   Use   MFC   in   static   Library 
并把project-> Setting-> C/C++   中的Use   runing-time   library   由Single-Threaded改为相应的 Multithreaded 

在MFC console 程序中一定要指定多线程版的C runtime 函数库,
所以必须使用/MT 选项。如果不做这项设定,会出现这样的联结错误:
Microsoft (R) 32-Bit Incremental Linker Version 5.00.7022
Copyright (C) Microsoft Corp 1992-1997. All rights reserved.
/out:mfccon.exe
mfccon.obj
nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
mfccon.exe : fatal error LNK1120: 2 unresolved externals
表示它找不到__beginthreadex 和__endthreadex

Visual C++ 编译器提供下列选项,让我们决定使用哪一个C runtime 函数库:
/ML Single-Threaded(static)
/MT Multithreaded(static)
/MD Multithreaded DLL(dynamic import library)
/MLd Debug Single-Threaded(static)
/MTd Debug Multithreaded(static)
/MDd Debug Multithreaded DLL(dynamic import library)

------------------------------------------------------------------------------------------------------------

VS2008在win7下不时出现Microsoft Incremental Linker已停止工作

这个是因为设置有问题。解决方法如下:
项目->属性->链接器->常规 下面的“启用增量链接”,将“是(/INCREMENTAL)”改为“否(/INCREMENTAL:NO)”。
不过这又引入了另外一个警 告:FormatCom.obj : warning LNK4075: 忽略“/EDITANDCONTINUE”(由于“/INCREMENTAL:NO”规范)
选择项目,属性->配置属性 ->C/C++,修改“调试信息格式”为“程序数据库(/Zi)”即可。

转载自:http://hi.baidu.com/jax_lee/blog/item/f170691db6735a0fb8127b91.html

-------------------------------------------------------------------------------------------------------------------------------

在学习CG提供的example时,遇到:

error LNK2001: 无法解析的外部符号 ___GLEW_VERSION_1_1
error LNK2019: 无法解析的外部符号 _glewInit,该符号在函数 _main 中被引用
error LNK2001: 无法解析的外部符号 ___wglewSwapIntervalEXT

的错误,而我明明已经加载了glew库,不明其因,上网百度之得到解决方法如下:

注意提供的解决方案,例如OpenGL_Basic_2008.sln,打开这个解决方案后可以看到前面27个project是示例,而最后一个是glewlib。打开解决方案的属性页,启动项目->单启动项目,glewlib。项目依赖项,每个示例都要在依赖项glewlib前面打勾。参考这个解决方案,当编译单个示例project时,也要在解决方案中添加glewlib这个project(见examples/opengl/glew文件夹),添加后按照上面的方法设置属性页就可以了。

转载自:http://topic.csdn.net/u/20100604/20/6af2efd4-c0f3-4c4f-ae60-199ad36a99e4.html

--------------------------------------------------------------------------------------------------------------------------------------

msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: __thiscall std::basic_string,class std::allocator >::basic_string,class std::allocator >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) 已经在 example2.obj 中定义
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: __thiscall std::basic_string,class std::allocator >::basic_string,class std::allocator >(class.................

解决方法:

    调用者的运行时库要与外部库一致。通过C/C++->CodeGeneration->Use Runtime library 设置。

转载自:http://zcun.i.sohu.com/blog/view/158081764.htm

---------------------------------------------------------------------------------------------------------------------------------

在生成里面有一个类似名为“批构建”(不同汉化翻译不同)的选项,点击后会出来。
或者在调试工具栏,有一个本来是“Debug”的下拉菜单,选择为Release即可。


---------------------------------------------------------------------------------------------------------------------------------

如何调试命令行程序:

方法一:在windows下vs中如下设置:
项目属性->配置属性->调试->命令参数 里输入你的参数
方法二: 把main()函数改个名,在另一个main()函数里输入参数调试.

---------------------------------------------------------------------------------------------------------------------------------

"无法找到“XXX.exe”的调试信息,或者调试信息不匹配……

解决方案:
1. 关闭掉Visual Studio 实例。
2. 找到解决方案下的.suo文件并删除之。
3. 重新启动Visual Studio,或者直接双击.sln文件打开
4. 成功调试程序!

转载自:http://hi.baidu.com/tuying1011/item/1963ed0e80ba1fc02e4c6b98

------------------------------------------------------------------------------------------------------------------

error PRJ0003 : 生成“cmd.exe”时出错

MSDN上提示错误的可能原因为:
系统资源不足。关闭一些应用程序以解决此问题。
没有足够的安全特权。验证是否有足够的安全特权。
VC++ 目录中指定的可执行路径不包括您正尝试运行的工具的路径。
对于生成文件项目,缺少要在“生成命令行”或“重新生成命令行”上运行的命令。

查了查资料,看到解释是:VS2008的环境变量设置不对(但是怎么会不对的呢?之前不是挺好的吗)
 应该如下解决:“工具--选项--项目和解决方案--VC++ 目录”
增加如下几行:
$(SystemRoot)/System32
$(SystemRoot)
$(SystemRoot)/System32/wbem
如果没有找到“项目和解决方案”,则勾选“工具”-“选项”里的“显示所有设置”(不过我没有看到这个“显示所有设置”的选项,当然“项目和解决方案”是直接就有的)。

转载自:http://blog.csdn.net/duqi_2009/article/details/6291685

你可能感兴趣的:(Microsoft,mfc,开发工具,library,linker)