vs2005编译的程序不能启动大致有两个原因
VC++2005编译出程序在XP下执行出错的解决方法
Searchingd:\ProgramFiles\MicrosoftVisualStudio8\VC\atlmfc\lib\atls.lib:
Searchingd:\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\lib\ws2_32.lib:
Searchingd:\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\lib\shell32.lib:
Searchingd:\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\lib\comctl32.lib:
修改成Multi-threaded(/MT)
修改了Runtime类型以后
需要将MFC的编译类型也改成静态库
Project->Property->configurationProperties->General->UseofMFC
修改成UseMFCinaStaticLibrary
一部分情况下在这步就能解决问题
Searchingd:\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\lib\winspool.lib:
Searchingd:\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\lib\advapi32.lib:
而动态MFC库使用的是Multi-threadedDLL(/MD)
vs2005+ ogre 出现“应用程序正常初始化(0xc0150002)失败”
vs2005+ ogre 出现“应用程序正常初始化(0xc0150002)失败”的解决方法我用vs2005+ogre SDK里的例子编译运行,出现了“应用程序正常初始化(0xc0150002)失败”的错误,之后看了很多帖子解决了问题.如果vs2005,不是sp1的,要打sp1的补丁,vs2005中文版补丁是 VS80sp1-KB926604-X86-CHS.exe,400多M英文版要用另外一个 ,具体名字不记得。
然后打完补丁再装vcredist_x86.exe 这个比较小,就十几M。
如果上面的步骤都进行过了还不行,要再打个补丁/download/D/2/3/D23F9F62-3DEE-4EC0-B3B9-D64E9F573D1F/VS80sp1-KB971090-X86-INTL.exe注意,这个不是一般情况下说的sp1补丁,sp1是KB926601,400M左右,这个是KB971090,200M左右(1)打sp1的补丁下载地址1为:/download/6/3/c/63c69e5d-74c9-48ea-b905-30ac3831f288/VS80sp1-KB926601-X86-ENU.exe(英文版)下载地址2为:/download/8/0/7/8071514d-9370-45c3-8af1-4ff09a70e59d/VS80sp1-KB926604-X86-CHS.exe(中文版)大约为430M。
(2)装vcredist_x86.exe/soft/16405.html<注意双击vcredist_x86.exe,不要双击Setup.exe。
>(3)下载安装VS80sp1-KB971090-X86-INTL.exe/download/D/2/3/D23F9F62-3DEE-4EC 0-B3B9-D64E9F573D1F/VS80sp1-KB971090-X86-INTL.exe注意,这个不是一般情况下说的sp1补丁,sp1是KB926601,400M 左右,这个是KB971090,200M左右。
VC6 和 VS2003 转换到VS2005 时可能会遇到的问题以及解决方法
今天在将2003建立的工程转换成2005时,发现遇到很多问题,网上搜了一些解决办法:经常写VC工程的人都会遇到升级到VS2005时出现的各种各样的问题,下面写一些自己遇到的问题,还有什么不全的请大家补充。
希望能给朋友们一些帮助。
VC6 和 VS2003 转换到VS2005 时可能会遇到的问题以及解决方法1.以前可以这样用try catchcatch(CException *e){pApp->Warn("%s",e->GetErrorMessage);e->Delete();return FALSE;}现在必须修改为:catch(CException *e){TCHAR errormsg[255];e->GetErrorMessage (errormsg,255,NULL);pApp->Warn("%s",errormsg);e->Delete();return FALSE;2. strchr必须强制转换一下。
以前可以 char *str2=strchr(line,'|');2005必须 char *str2=(char *)strchr(line,'|');3.lifescope of int i in for(int i; i< size; ++i)in VC6, the codes below are okfor(int i = 0; i< 10; ++i){//...}for(i = 20; i< 40;++i){//...}but in VS2005, we should write like below:for(int i = 0; i< 10; ++i){//...}for(int i = 20; i< 40;++i)//...}in fact, from , the compiler accord with C++ standard more than VC6.If you are porting a VC6 project to VS2005, you will encounter ma ny many codes like this.4. ON_WM_NCHITTEST (and other MFC macros) won't compile in VS2005VS2005中,ON_WM_NCHITTEST宏编译不过When I add a message handler of ON_WM_NCHITTEST to a CCont rolbar-derived class, it compiles error:error C2440: 'static_cast' : cannot convert from 'UINT (__thiscall CMenuBar::* )(CPoint)' to 'LRESULT (__thiscall CWnd::* )(CPoint)' Ca st from base to derived requires dynamic_cast or static_castTo fix this bug, we should change the prototype of OnNcHitTestfromafx_msg UINT OnNcHitTest(CPoint point);toafx_msg LRESULT OnNcHitTest(CPoint point);5. VS2005中有些可能引起内存越界的函数不建议使用了In VS2005, some dangerous functions are deprecatedchar c[10];strcpy(c, "testtestts"); //ok with VC6, but not in VS2005strcpy_s(c, _countof(c),"testtestt");//9 chars, ok in VS2005strcpy_s(c, _countof(c),"testtestt");//10 chars, assert!!!!! in VS2 0056.error C2440: 'static_cast' : cannot convert from 'HRESULT (__this call CtestpalView::* )(WPARAM,LPARAM)' to 'AFX_PMSG'None of the functions with this name in scope match the targ et typeHRESULT (__thiscall CtestpalView::* )(WPARAM,LPARAM)AFX_PMSG类型:void (AFX_MSG_CALL CCmdTarget::* )(void)7.error C2440: 'static_cast' : cannot convert from 'void (__thiscall C SettingStart::* )(BOOL,HANDLE)' to 'void (__thiscall CWnd::* )(BOOL, DWORD)'In VC6, the handler for ON_WM_ACTIVATEAPP was expected to b eafx_msg void OnActivateApp( BOOL, HANDLE);In VC7 and vs2005, it has been changed toafx_msg void OnActivateApp( BOOL, DWORD );8.error LNK2019: unresolved external symbol "wchar_t * __stdcall _com_util::Co.....解决方法,Property page ->C/C++ ->Language ->treat Wchar-t 改为 No未完待续......官方总结:Visual C++ 2005库已经发生了一系列的变化,可能会对现有的程序有所影响,在升级到Visual C++ 2005之前,必须要确定程序中没有这些问题。
VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题
VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题文章分类:C++编程VC9编译的程序在没有装过VC9(确切的说是.Net Framework3.5)的机器上运行时,如果提示“由于应用程序配置不正确,应用程序未能启动。
重新安装应用程序可能会纠正这个问题。
”这个错误,那么就说明该程序动态链接了VC9的运行时库,(如果还用到了MFC,那么可能动态链接了VC9的MFC库,同理还有ATL库),以及缺少对应的manifest文件,程序在目标机器上没有找到这些库和配置文件,因此导致了这个错误。
出现这种情况的VC9编译器可能存在3个版本,接下来分别阐明:1、没有打过任何补丁的VS2008该版本对应的CRT/MFC/ATL库的版本号为9.0.21022.8,这个版本号在后面会用到。
这个版本的程序部署比较简单,直接把VC安装目录下的redist目录(C:\Program Files\Microsoft Visual Studio 9.0\VC\redist)中需要的库以及对应的manifest文件拷贝到执行程序同目录下,这样程序到任何机器上都能够正常运行了。
2、打过SP1补丁的VS2008打过该补丁后,系统中存在着两个版本的CRT/MFC/ATL库,版本号分别为9.0.21022.8和9.0.30729.1,这导致了manifest文件中记录的版本号和实际库的版本号不一致(程序要求它们的版本号一致才能运行)。
这个版本的程序部署需要两个步骤,首先要使manifest文件中依赖项的版本号与实际库的版本号一致,均为9.0.30729.1,方法是在工程设置中增加一个宏定义_BIND_TO_CURRENT_VCLIBS_VERSION,该宏定义于C:\Program Files\Microsoft Visual Studio 9.0\VC\include\crtassem.h文件中,然后重新编译程序。
VS2005应用配置不正确清单(manifest)R6034
VS2005应用配置不正确清单(manifest)R6034现象用VS2005编译的程序部署到某些系统(XP、Win2003)中常会遇到#1“ 应用程序配置不正确,程序无法启动,重新安装应用程序可能会修复问题。
”或者#2“没有找到MSVCR80.DLL,因此这个应用程序未能启动。
重新安装应用程序可能会修复问题。
”或者当复制MSVCR80.DLL到应用目录后提示#3“R6034”。
原因Visual C++ Libraries as Shared Side-by-Side Assemblies (大意如下)vs2005在XP、2003开发模式支持shared SxS,用到ATL, MFC, Standard C++, CRT库的应用需要邦定(清单)manifest才能正确加载相应DLL。
如果应用程序在这些系统下未邦定清单,即使将这些库放到应用本地也不会正确加载(#3)。
在Windows 98/2000下,由于不支持该模式,加载时采用默认的方式加载DLL,也就不会出现上述问题。
解决1.应用程序嵌入清单文件Visual Studio 中的清单生成(大意如下)1)“项目属性”对话中,在“配置属性”选项卡上,单击“链接器”,再单击“清单文件”,然后单击“生成清单”。
2)“项目属性”对话中,打开“清单工具”节点,然后选择“输入和输出”的“嵌入清单”选择“是”。
2.当应用程序依赖于ATL、MFC、CRT等时,将相应DLL连同清单文件一同打包发布。
将下面目录下的相应文件一同打包发布Release:D:\Program Files\Microsoft Visual Studio8\VC\redist 86Debug:D:\Program Files\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist 86如将MFC是“D:\Program Files\Microsoft Visual Studio 8\VC\redist 86\Microsoft.VC80.MFC”目录下的Microsoft.VC80.MFC.manifest和mfc80.dllPS:点击相关链接获取详细信息。
VisualStudio2005编译的版本无法启动,出现应用程序配置不正确的错误
在上找出了这些⽅法: ⽅法⼀: 在类似C:\Program Files\Microsoft Visual Studio 8\VC\redi st\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT 下找到了下列⽂件: msvcm80d.dll msvcp80d.dll msvcr80d.dll Microsoft.VC80.DebugCRT.manifest 把这⼏个⽂件拷贝到⽬标机器上,与运⾏程序同⼀⽂件夹或放到system32下,就可以正确运⾏了。
其他release版、MFC程序什么的都是拷redist下相应⽂件夹下的⽂件就可以了,⽂件夹后都有标识! ⽅法⼆: 修改编译选项,将/MD或/MDd 改为 /MT或/MTd,这样就实现了对VC运⾏时库的静态链接,在运⾏时就不再需要VC的dll 了。
⽅法三: ⼯程-》属性-》配置属性-》常规-》MFC的使⽤,选择“在静态库中使⽤mfc” 这样⽣成的exe⽂件应该就可以在其他机器上跑了。
⽅法四: 你的vc8安装盘上找到再分发包vcredist_xxx.exe和你的程序捆绑安装 在⼤部分机上都可以运⾏了,唯独在我的测试机上还是报应⽤程序配置错误。
刚开始怀疑是还缺少dll,在能跑的机上把windows/system32⽬录下所有的msvc*.dll都复制到这台机的运⾏⽬录,还是不⾏!极度郁闷※×…!后来实在没辙了,就在VC环境中打开了EXE来查看它内嵌的manifest资源,⽆奈了看了⼀会,带着⼼中对manifest的咒骂,突然发现这个manifest带了两个版本CRT的依赖: 再打开Microsoft.VC80.CRT.manifest⼀看,是这样: 就是说,我们EXE的Manifest⾥多了⼀个版本依赖,那就把后⾯那个依赖删除试试。
于是就把⼯程设置的⽣成manifest的选项去掉,⼿⼯改了⼀下manifest放到程序⽬录下,发现果然可以运⾏了! 还有个问题没有明⽩,就是VC为什么在⾃ 傻膍anifest⾥带了两个依赖呢,上再查了⼀下,发现在msdnonline上说'8.0.50608.0'这个版本是在XP下⽤的,'8.0.50727.762'这个版本是在Vista下⽤的(/en-us/library/ms235342(VS.80).aspx),可是我⽤的是'8.0.50727.762'在XP下运⾏的好好的!想不通是它错了还是别的原因。
VS,无法启动指定的程序,系统找不到指定的文件(转载)
VS,⽆法启动指定的程序,系统找不到指定的⽂件(转载)
⼀般出现这种情况,⼤多数都是从⽹上down下来的源码之类的.
问题截图:
由于双⽅环境的问题,所以不能直接使⽤.不过没关系,今天我找到了解决的⽅法,在这⾥给⼤家分享⼀下.
虽然⽹上可能有,但是我觉得多⼀份信息,多⼀份找到的可能,多⼀份解决的机会.并且我保证绝不copy,雷同的信息就没意思了.
⽅法如下:
1:找到项⽬属性(上图).
2:记住项⽬输出⽬录(上图);3:记住项⽬输出⽂件(上图).
解析:
项⽬输出⽬录:简单解释就是点击运⾏、或者调试程序的时候,会从这个⽬录下寻找项⽬⽂件(exe),并运⾏。
项⽬输出⽂件:简单解释就是⽣成编译项⽬的时候,项⽬⽂件(exe)保存的⽬录。
从上图可以看出:
项⽬输出⽬录:.\Debug\
项⽬输出⽂件:.\
很显然两个路径不匹配,所以运⾏调试的时候会出现第⼀幅图的错误提⽰。
解决⽅法:
⽅法有两种,聪明的童鞋应该看出来了,没错:
第⼀就是:修改项⽬输出⽬录,
第⼆:修改项⽬输出⽂件,
只要两个⽬录相同就可以解决问题。
使用VC2005一些问题及解决方案(一)
使用VC2005一些问题及解决方案(一)首先是我使用VC2005在不通阶段的不通感受:刚开始安装VS2005时候感觉:真是大啊!装了我一个上午!!而且运行个VC有时能耗我好大的内存。
刚使用VC2005时候的感受:界面挺不错,貌似功能更强大,对C++标准支持的很好,还可以用我最喜欢的Comic Sans MS字体,还支持代码收缩等等。
虽然比较慢,但是不像VC6. 0那样老是出现编译死机的情况。
开始用VC2005学习写东西的时候的感受:实在没有6.0好用,限制太多,很多地方跟VC6. 0不一样,而且很多功能似乎都找不到了。
还不如6.0方便。
使用一段时间的感受:虽然经常遇到问题但是都是有很好的解决方案的,而且相对6.0,2005的BUG少很多,总体来说如果机器配置还算可以的话,用2005是挺不错的。
下面就是我使用VC2005遇到的以及解决了的问题:VC遇到的以及解决了的问题1,对于Radio控件如何正确设置属性Group?首先要确保几个Radio控件的Tab是按顺序的(可以在对话框编辑器中按Ctrl+D将三个控件T ABORDER设置在一起)。
然后对第一个Radio控件选择Group属性,其他的不用选。
对第一个控件添加关联变量int m_test,并且设置初值-1,则当我们点击第一个控件m_test值是0,点击第二个m_test值是1....依此类推。
2,VC2005中添加虚函数问题:在VC6.0中可以对类右键添加虚函数,在VC2005中需要在类属性中点击一个重写按钮,在那里添加虚函数。
3,VC2005动态添加右键菜单问题:在VC6.0中我们可以在Project->Add To Project->Component and Control中添加组件,如添加Pop-up Menu可以实现添加右键快捷菜单的功能。
但是在VC2005中我们没有这个功能,但是我们可以手动自己添加,也不是很复杂。
步骤如下(假设工程是一般MFC视图工程命名Menu):1,自己添加一个Menu资源,例如命名为IDR_MENU1,编辑之。
Visual Studio 2005下C++智能设备应用程序常见错误及解决方法
本文属转载,原文地址:/shaozhuyong/article/details/7406366
Visual Studio 2005下C++智能设备应用程序常见错误及解决方法1、MFC智能设备应用程序不能创建的问题:
解决方法:
1.关闭VS2005,运行 RegEdit.exe
2.找到以下路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Ext\PreApproved
3.右键新建项:{D245F352-3F45-4516-B1E6-04608DA126CC}
4.关闭注册表
5.再运行VS2005即可了
2、.exe不是一个有效的PocketPC应用程序
解决方法:更改命令行成下面
3、RSFC.h找不到的问题
解决方法:设置附加库目录。
4、模拟器中只有一个.exe文件,无法执行。
解决方法:库目录没设置好,设置好后调试应该能解决。
5、.exe启动不了的问题
解决方法:可能类库引用有问题,往模拟器上上传类库应该可以解决。
6、在静态库中使用MFC引发的问题。
调试错误如图:
解决方法:解决方案管理——属性页——配置属性——常规——项目默认值——MFC的使用属性改为:在共享DLL 中使用MFC。
7、调试中出现无法解析的外部符号的另外一个可能原因是,在类中定义了一个函数,而没有实现,却直接调用。
解决方法:找到函数实现之。
未完待续…………。
VS2005调试问题与解决方法集锦
VS2005调试问题与解决方法集锦展开全文1.检测到有潜在危险的 Request.Form 值2.“在没有任何数据时进行无效的读取尝试”解决办法3.数据为空。
不能对空值调用此方法或属性。
4.阅读器关闭时 FieldCount 的尝试无效5.未能映射路径6.Unreachable code detected7.索引超出范围。
必须为非负值并小于集合大小8.数据为空。
不能对空值调用此方法或属性9.数据源不支持服务器端的数据分页10.对象名'***** '无效11.在建立与服务器的连接时出错。
在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。
(provider: 命名管道提供程序,error: 40 - 无法打开到 SQL Server 的连接)12.SqlDateTime 溢出。
必须介于1/1/1753 12:00:00 AM 和12/31/9999 11:59:59 PM之间。
13.出现-------表示“属性”,此处应为“方法”14.未能从程序集“DAL, Version=1.0.0.0, Culture=neutral,PublicKeyToken=null”中加载类型“DAL.SqlHelper”。
15.为过程或函数指定的参数太多16.无法启动调试,绑定句柄无效17.Unable to debugging on the web server.Debug failed because integrated windows authentication is not enable18.Automation 操作中文件名或类名未找到: 'RegExp'19.System.NullReferenceException: 未将对象引用设置到对象的实例。
20.错误 1718。
文件被数字签名策略拒绝(安装vs2005sp1时)21.vs2005不能从源文件模式切换到视图模式22.Validation of viewstate MAC failed23.Automation server can't create object"(Automation 服务器不能创建对)24.包加载失败25.Error spawning 'cmd.exe'.26.尝试读取或写入受保护的内存27.无法在证书存储区中找到清单签名证书28.该项目中不存在目标“ResolveKeySource”。
VS2005编译链接错误小结
5. error LNK2019: unresolved external symbol __security_cookie referenced in function ... 解决办法:
编译时出现了这个错误, Properties ---> C/C++ ---> Code Generation ---> Buffer Security Check,设置为 NO(/GS-)
vmare 启动不了提示:应用程序配置不正确,应用程序未能启动
【转】安装好VMWARE虚拟机出现提示,‘由于应用程序配置不正确,应用程序未能启动...
安装好VMWARE虚拟机出现提示,‘由于应用程序配置不正确,应用程序未能启动...
今天正好给重装系统的笔记本上装虚拟机的时候出现此问题
在网上搜集整理的方法送给有此问题的朋友
遇到“由于应用程序配置不正确,应用程序未能启动。
重新安装应用程序可能会纠正这个问题”的提示。
当我遇到这个问题的时候,是在是崩溃,换了好多的虚拟机都不行,最后在网络上找到解决方法,跟大家共享,希望你不用浪费无谓的时间去搞这个,因为有更重要的在等我们去做!解决方法就是安装Microsoft Visual C++ 2005 SP1,在微软的官方网站下载:
/zh-cn/download/details.aspx?id=5638。
VS2005编译常见错误汇总(更新按照公司文档模板)
VS 2005常见编译错误汇总在开发DS02H 项目中,总结了一些编译时较常遇到的编译错误1. fatal error C1010: unexpected end of file while looking for precompiled headerdirective中文翻译:寻找预编译头文件路径时遇到了不该遇到的文件尾。
解决:一般是没有#include "stdafx.h"2. fatal error C1083: Cannot open include file: 'C…….h': No such file ordirectory中文翻译:不能打开包含文件“C…….h”解决:检查文件名是否有错。
3. error C2011: 'C……': 'class' type redefinition中文翻译:类“C……”重定义。
解决:看是否重名了,去掉一个定义4. error C2018: unknown character '0xa3'中文翻译:不认识的字符'0xa3'。
解决:检查是否使用了汉字或中文标点符号5. error C2057: expected constant expression中文翻译:希望是常量表达式。
解决:使用常量表达式,特别注意出现在switch语句的case分支中务必要使用常量表达式6. error C2065: 'IDC_BTN_ENTER' : undeclared identifier“IDC_BTN_ENTER”:中文翻译:未声明过的标识符。
解决:要先定义后才能使用7. error C2082: redefinition of formal parameter 'bFlag'中文翻译:函数参数“bFlag”在函数体中重定义。
解决:去掉第二个定义8. error C2143: syntax error: missing ':' before '{'中文翻译:句法错误:“{”前缺少“;”。
VC6的LNK2005错误
VC6的LNK2005错误使用VC编程中经常能遇到LNK2005错误——重复定义错误,其实LNK2005错误并不是一个很难解决的错误。
弄清楚它形成的原因,就可以轻松解决它了。
出现LNK2005错误有多种原因:1.重复定义全局变量。
2.头文件的包含重复。
3.使用第三方的库造成的。
这里只讨论使用第三方的库造成的原因的处理。
如果在程序中同时使用了多个函数库,并且这些函数库中有些函数名称有冲突,就会引起LNK2005错误。
微软提供了两套C运行期函数库,一种是普通的函数库:LIBC.LIB,不支持多线程。
另外一种是支持多线程的:msvcrt.lib。
如果一个工程里,这两种函数库混合使用,可能会引起这个LNK2005错误,一般情况下它需要MFC的库先于普通运行期函数库被连接,因此建议使用支持多线程的 msvcrt.lib。
通常是尽量避免这样混合使用两套函数库(LIBC.lib和MSVCRT.lib)。
如果不得不同时使用两套函数库或者其它相互有冲突的函数库,可以尝试按下面所说的方法:在编译包含zlib库文件的时候,出现以下错误:Linking...MSVCRT.lib(MSVCRT.dll) : error LNK2005: _malloc already defined in LIBCD.lib(dbgheap.obj)MSVCRT.lib(MSVCRT.dll) : error LNK2005: _sprintf already defined in LIBCD.lib(sprintf.obj)MSVCRT.lib(MSVCRT.dll) : error LNK2005: _fclose already defined in LIBCD.lib(fclose.obj)MSVCRT.lib(MSVCRT.dll) : error LNK2005: _free already defined in LIBCD.lib(dbgheap.obj)MSVCRT.lib(MSVCRT.dll) : error LNK2005: __vsnprintf already defined in LIBCD.lib(vsnprint.obj)MSVCRT.lib(MSVCRT.dll) : error LNK2005: _fflush already defined in LIBCD.lib(fflush.obj)LINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of other libs; use /NODEFAULTLIB:libraryDebug/Test.exe : fatal error LNK1169: one or more multiply defined symbols found产生的原因是一个函数在两个不同的Lib中都有导出(MSVCRTD 和LIBC有冲突),有两种办法处理:方法一: MSDN对此的解决方法是增加[/FORCE:MULTIPLE]连接选项. 这方式发现会有警告,但可以编译通过:LINK : warning LNK4075: ignoring /INCREMENTAL due to /FORCE specificationMSVCRT.lib(MSVCRT.dll) : warning LNK4006: _malloc already defined in LIBCD.lib(dbgheap.obj); second definition ignored MSVCRT.lib(MSVCRT.dll) : warning LNK4006: _sprintf already defined in LIBCD.lib(sprintf.obj); second definition ignored MSVCRT.lib(MSVCRT.dll) : warning LNK4006: _fclose already defined in LIBCD.lib(fclose.obj); second definition ignored MSVCRT.lib(MSVCRT.dll) : warning LNK4006: _free already defined in LIBCD.lib(dbgheap.obj); second definition ignored MSVCRT.lib(MSVCRT.dll) : warning LNK4006: __vsnprintf already defined in LIBCD.lib(vsnprint.obj); second definition ignoredMSVCRT.lib(MSVCRT.dll) : warning LNK4006: _fflush already defined in LIBCD.lib(fflush.obj); second definition ignoredLINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of other libs; use /NODEFAULTLIB:library方法二:添加链接选项:/NODEFAULTLIB:<library> 如:/nodefaultlib:"libcd.lib" 该方法能编译通过,并且没有警告。
VS2005 error LNK2019
【VS2005】error LNK2019: 无法解析的外部符号_WinMain@16一,问题描述error LNK2001: unresolved external symbol _WinMain@16debug/main.exe:fatal error LNK 1120:1 unresolved externalserror executing link.exe;二,问题的原因The linker generates the following error message when a Console Application project is built as an Application project。
程序的入口函数错误:用vc建了一个控制台程序(它的入口函数应该是main)却错误的使用了WinMain作为入口函数。
产生的原因:用vc打开了一个.c/.cpp 文件,然后直接编译这个文件,这个文件中使用了WinMian而不是main作为入口函数。
vc这时的默认设置是win32程序-非控制台程序。
三,解决方法vs1.进入project->setting->c/c++, 在category中选择preprocessor,在processor definitions中删除_CONSOLE, 添加_WINDOWS2.进入project->setting->Link, 在Project options中将/subsystem:console改为/subsystem:windows.3.保存设置,Rebuild All.VS2005中的设置请参考对应项进行设置VS2005中的设置1.菜单中选择 Project->Properties, 弹出Property Pages窗口2.在左边栏中依次选择:Configuration Properties->C/C++->Preprocessor,然后在右边栏的Preprocessor Definitions对应的项中删除_CONSOLE, 添加_WINDOWS.3.在左边栏中依次选择:Configuration Properties->Linker->System,然后在右边栏的SubSystem对应的项改为Windows(/SUBSYSTEM:WINDOWS)4.OK Rebuild All.。
VISAL2005编译时程序无法启动解决办法
Visual Studio编译Win32 控制台应用程序时提示“无法启动程序”
对于编程语言初学者来说,能使用编译工具正常的做个实验,运行一下自己的写的或者从资料上下载的代码,然后能出一个结果是一件很快乐的事情。
但是由于编程教材甚至网络上都很难找到指导初学者一步一步创建项目的过程,所以刚开始很容易出错。
下面就以Visual Studio 2005为例,介绍学习C++语言时创建Win32控制台应用程序的方法以及出现问题的处理过程中。
第一步,新建一个空项目,文件—新建—项目。
第二步,新建Win32控制台应用程序,并选择项目存放的路径,输入项目的名称,然后点击“确定”按钮。
第三步,进行应用程序设置。
选中窗口左侧的“应用程序设置”,各类设置下图默认即可,点击完成。
第四步,新建源文件。
文件—新建—文件
第五步,类别选择Visual c++,模板选择C++文件(.cpp),然后选择打开。
第六步,在新打开的源文件中输入你需要运行的源码,并按CTRL+F5运行程序。
这时候我们发现系统给出如下的提示。
第六步,选择文件—源1.cpp另存为。
注意:保存路径一定要选择自己创建项目时的路径,如下图所示,文件名称可以和项目名称一致。
第七步,先把解决方案资源管理器调出来,视图—资源管理器,如下图所示。
选择左侧的源文件并点右键,添加—现有项,从查找范围中选择自己刚才保存的路径中找到已经保存的CPP文件,选中然后添加即可。
第七步,再次按CTRL+F5运行程序,发现程序已经可以正常输出。
vs工程打不开怎么解决方案
VS工程打不开怎么解决方案在使用 Visual Studio 进行开发时,有时会遇到工程打不开的情况。
这可能是由于多种原因引起的。
本文将介绍常见的几种情况以及相应的解决方案。
1. 工程文件已被移动或删除当你移动或删除了工程文件,重新打开 Visual Studio 时,会提示“无法找到工程文件”的错误。
此时可以采取以下措施解决问题:•如果文件已被移动,可以手动移动回原有的位置。
•如果文件已被删除,需要还原或重新创建工程文件。
•如果文件名或路径发生了变化,需要在 Visual Studio 中重新设置路径:1.右键单击项目名称,选择“属性”。
2.在“常规”选项卡下设置“项目文件夹”和“输出目录”。
3.保存更改,重新打开工程。
2. 工程文件损坏或缺失有时打开工程时会出现“无法识别的文件格式”或“xxxxx.vcxproj 文件缺失”的错误。
这可能是由于工程文件损坏或缺失所致。
可以尝试以下方法解决问题:•打开工程文件所在的文件夹,检查是否有辅助文件(如 .sln 文件)。
•如果有备份文件,可以尝试还原。
如果以上方法都不能解决问题,则需要重新创建工程,并将旧代码导入新工程中。
3. 编译器或框架版本不兼容如果使用不兼容的编译器或框架版本,有时会出现无法编译或打开工程的问题。
此时可以尝试以下方法解决问题:•确认使用的编译器或框架版本是否与工程要求的版本一致。
•如果是新项目,可以尝试创建一个新的项目,使用最新版本的编译器或框架。
•如果是旧项目,可以尝试升级编译器或框架版本。
4. 插件或扩展导致的冲突在 Visual Studio 中使用插件或扩展是很常见的,但如果安装的插件或扩展不兼容,会导致 VS 无法打开工程。
此时可以尝试以下方法解决问题:•禁用可能导致冲突的插件或扩展,尤其是最近安装或更新的。
•重新安装 VS,不选择安装可能导致冲突的插件或扩展。
•如果以上方法都不能解决问题,可以尝试联系插件或扩展的开发者,获得支持。
重装系统后安装的VS05修补漏洞之后VS就打不开了,闪一上就消失
引用:
卸载重装.net framework 2.0
win7下自带2.0,重装失败
------其他解决方案--------------------------------------------------------
引用:
修复下,看看。 VS 的安装版本不受限制的,比如我先装了 VS 2012 然后装了 VS 2008 都能用,你不能用是因为装错了。 直接修复下。
卸载重装.net framework 2.0
------其他解决方案--------------------------------------------------------
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\AddIns\VMDebugger.Connect目录下把LoadBehavior项改为0
引用:
引用:
crosoft\VisualStudio\8.0\AddIns\VMDebugger.Connect目录下把LoadBehavior项改为0
没有那个目录
这个是注册表的东西跟目录有什么关系
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\AddIns\VMDebugger.Connect目录下把LoadBehavior项改为0
没有那个目录
这个是注册表的东西跟目录有什么关系
cmd - 输入regedit-然后找上门的节点修改
重装系统后安装的VS05,修补漏洞之后VS就打不开了,闪一下就消失
有遇到这种问题的人吗,具体是哪个补丁造成这种状况,希望赐教,因为要求用05,所以安装10之类的话就别说了
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如果是debug版, 就复杂一些了, 首先要确定你需要的DLL的版本, 绝大多数(注意:不是"所有")情况下它和编译器的版本相同, 通过vs2005的关于对话框就能看到, 如下图所示:
确定版本后, 在开发组的机器上进入“%windir%\winsxs"文件夹(下面将以x86平台8.0.50727.762版本的debug CRT为例进行说明) 需要依版本号而定的部分用加粗表示, 拷贝以下文件到目标机器的相同位置即可:
2. 开发机运行正常, 换到其它机器上就不行了
这一般就是系统DLL(包括CRT, MFC, ATL等)没有正确配置导致的。
如果程序是release版, 那么很简单, 只要把“\SDK\v2.0\Boovcredist_x86.exe"拷贝到目标机器上运行即可.(解释一下——拷贝这个程序到目标机然后运行,像是装了一个什么东西。装完了以后再运行用平台开发出来的程序,如果还提示有什么DLL找不到,那就把开发机上相应的DLL拷贝出来,贴到用户机中相应的文件夹里面。比如一个MFC的什么DLL找不到,在开发机上搜索这个DLL,记住它的路径,然后按这个路径贴到用户机上。) 这是以x86平台为例的, 如果你用的是别的CPU平台(amd64或ia64)把x86替换成相应的内容就可以了。
x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f文件夹下所有文件;
Manifests文件夹下
x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f.cat
x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f.manifest
Policies\x86_policy.8.0.Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_x-ww_09e017b4文件夹下
按作者的方法试了一下,把项目属性改成Release,重新生成解决方案。把文件拷贝到用户机,先运行一次,然后再运行自己的程序,就不再提示“The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log for more detail.” 而是提示某个MFC DLL没找到,这个就和XP系统下MFC程序安装就要运行的提示一样了,拷贝相应DLL到SYSTEM32,程序终于能在Vista下面顺利执行了。
8.0.50727.762.cat
8.0.50727.762.policy
注意, 上面的操作只是在目标操作系统为winxp,win2003及以上时才需要的, 如果是win2000及以下的系统, 只要把第一个文件夹下的文件拷贝到system32中就行了。
本次生成程序用的平台是Visual Studio 2008,装了一下这个vcredit_86就可以了。根据文章VS2005也是这样。那对于VS2003和更早的VC6.0可不可以也使用这个办法呢?根据用VC2003和VC6.0的程序在Vista下面测试的结果,答案是可以。方法也是类似的,先运行vcredist_x86.exe。这个程序是SDK带的程序,以目前的了解也许SDK版本至少要高于.NET 2.0才会有。SDK2.0有,SDK6.0有, SDK1.1没有。值得注意的一点:用系统搜索过这个文件搜索不到,但是自己到那个文件夹下面去找就能找到,所以如果没有搜索到的话一定要自己去SDK文件夹下面找一下。
1. 在开发组的机器上(安装有vs2005)有时都不能启动
这一般是项目的文件被放在FAT/FAT32分区上导致的, 解决方法是把它们都移动到NTFS分区上, 或者把“项目属性|Manifest Tool|General|Use FAT32 Work-around”设为yes。
有的根本就没有装.NET的SDK怎么办呢?也有办法!这个单独的vcredist_x86.exe文件可以在微软的下载中心下载到,东西是一样的,而且在微软下载到的还是最新的版本。