VS2008无法调试,报错MSVCR90.DLL丢失

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/BetaBin/article/details/7455462

(非常之郁闷的一个下午,睡完午觉,发现早上搭好的代码没办法调试了。顿时抓狂了下,后来还是想了下早上干过什么。隐隐约约记得把一个MSVCR90.DLL拖到虚拟机去的感觉,然后还改过shared的项目属性,不过只是个预编译头开关。)

——————

更新,最近发现这个问题可能是由于我的VS2008出问题,有个项目包含stdlib.h就报丢失MSVCR90.DLL。

——2012/04/16

——————

然后就针对性的,先把整个项目重新解压,恢复原来的配置。再者,搜查一下MSVCR90.DLL,发现机子里面还有几个……这是个VS2008相关的Debug用的dll。就郁闷,不是有MSVCR90.DLL了么。怎么会不行。所以就将一个MSVCR90.DLL直接拷到了工程目录。这个时候就报另一个错误,Debug Error。当时第一反应是和之前丢失pthread的情况相同,遂用DLL工具,不过不行,总是说服务端信息不足。之后,再Google了N遍后,看到了如下这么个解决方案:

1. 在“属性”->“C/C++”->“代码生成”->“运行时库”里面设为“多线程DLL”
2. 在程序里添代码:

#pragma comment(linker, "\"/manifestdependency:type='Win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='X86' publicKeyToken='1fc8b3b9a1e18e3b' language='*'\"")

“实际上,"Debug"和"Release"只是两套IDE预先设定好的编译参数和宏定义组合(例如我们经常遇到的_DEBUG和NDEBUG宏)。编译 器并不知道Debug和Release之分(不过MD和MDd编译参数会区分Debug版本和Release版本的运行时库)。当混用用Debug设置编译的程序和Release版本的运行时库的时候,由于它们生成的时候使用的是两套不同的编译选项,因此非常可能互不兼容。”

这样就果断可以调试了,而且,还解决了我早上的一个问题:


不过,这段comment的后面个参数设置,还是有点不懂。需要以后看下。

展开阅读全文

vs2008调试

04-01

string sql = "SELECT * FROM Job_ReleaseJob INNER JOIN Job_JobSort"rn + " ON Job_ReleaseJob.JobSortId = Job_JobSort.Id where Job_JobSort.Id in"rn + "(select Id from Job_JobSort where SortName like '%@SortName%')";rn SqlParameter[] para = new SqlParameter[] rn rn new SqlParameter("@SortName",sortName)rn ;rn SqlDataReader reader = DBHelper.ExecuteDataReader(sql, para);rn方法DBHelper.ExecuteDataReader如下rn public static SqlDataReader ExecuteDataReader(string sql, SqlParameter[] paras)rn rn return ExecuteDataReader(sql, paras, CommandType.Text);rn rn public static SqlDataReader ExecuteDataReader(string sql, SqlParameter[] paras, CommandType type)rn rn SqlDataReader dr = null;rn //构造连接对象rn SqlConnection con = new SqlConnection(str);rn //构造执行对象rn SqlCommand cmd = GetCommand(sql, paras, type);rn cmd.Connection = con;rn tryrn rn //打开连接rn con.Open();rn //执行命令rn dr = cmd.ExecuteReader();rn rn catch (Exception ex)rn rn //输出异常rn Console.WriteLine(ex.Message);rn rn return dr;rn rn public static SqlCommand GetCommand(string sql, SqlParameter[] paras, CommandType type)rn rn SqlConnection con = new SqlConnection(str);rn SqlCommand cmd = new SqlCommand(sql, con);rn cmd.CommandType = type;rn if (paras != null)rn rn cmd.Parameters.AddRange(paras);rn rn return cmd;rn rnSELECT * FROM Job_ReleaseJob INNER JOIN Job_JobSort ONrn Job_ReleaseJob.JobSortId = Job_JobSort.Id where Job_JobSort.Id in(select Id from Job_JobSort where SortName like '%计%')在数据库查询有结果。rn在网站做没搜到相应的结果出来rn但没报错....好心人帮我看看哪里有错。或加我Q310500514我给源代码你 论坛

没有更多推荐了,返回首页