VS中遇到的奇怪问题

8、错误 C2440: “static_cast”: 无法从“void (__thiscall CView::* )(UINT,LONG)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”  问题

原因:VC6.0的消息映射函数方法,升级至VS2005以后,不能再这样使用。

解决方法:把原来的消息函数返回值类型改为LRESULT,函数内可以随便写个return TRUE; 然后消息函数的参数必须改写成(WPARAM wParam,LPARAM lParam)而不论这两个参数是否用得到;最后,消息映射如ON_MESSAGE(UM_PROGRESS,&OnProgress) 这样就没问题了,祝你成功!

 

7、解决“错误 D8016 “/ZI”和“/Gy-”命令行选项不兼容 ”问题

解决方法:VS2015调试中出现上述问题,我们需要手动改变/ZI命令行选项 或者 /Gy命令行选项,
进入“项目”—>“属性”—>“C/C++”

(1)—>“常规”—>“调试信息格式”—>选择“程序数据库(/Zi)”或“无”

或者
(2)—>“代码生成”—>“启用函数集链接”—>选择“是 (/Gy)”

 

1、关闭主窗体时,其他窗体仍显示,并且仍处于调试状态等

原因: 1)Form.Show();//脱离主线程显示

    2)Application.Exit(); //通知所有消息泵必须终止,并且在处理了消息以后关闭所有应用程序窗口。

    3)Environment.exit(0);//立即终止

因此,想立即终止用:Environment.exit(0);想处理了消息后关闭所有应用程序窗口,用Application.Exit();

2、后期生成事件内拷贝生成后的dll,报“错误 170”

原因:命令copy "$(SolutionDir)Src\Dependencies\7z.dll"  "$(SolutionDir)\Build\bin\"   /y 中的copy命令错误。

解决方法:将copy 改为 xcopy。即命令改为:xcopy "$(SolutionDir)Src\Dependencies\7z.dll"  "$(SolutionDir)\Build\bin\"   /y

 注:1) rmdir /S /Q (/S 除目录本身外,Q 安静模式)

   2) xcopy (/E 所有, /S 除了空的,/T 创建目录结构,但不复制文件。/Y 复制文件审核设置(隐含 /O)。/D:m-d-y 复制在指定日期或指定日期以后更改的文件。如果没有提供日期,只复制那些源时间比目标时间新的文件。)

3、编程时引用的dll库内的类可用,编译时却报找不着引用的库。

原因:与应用程序的目标框架的类别有关。

解决方法:

  法一:如在属性-->应用程序-->目标框架:将.Net FrameWork4.0 Client Profile 改为.Net FrameWork4.0

  法二:将引用的dll升级更高版本(如将log4net.dll从1.2.10.0升级为1.2.11.0)

4、全局程序集缓存引起的问题。应用程序的目标框架,引用的dll都正确,却报错。如:程序代码及nhibernate.dll引用的log4net.dll的1.2.10.0版本,编译正常,运行报:“未能加载文件或程序集或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。”

原因:

1)全局程序集缓存中的dll版本与引用的版本不一致。全局程序集缓存中的log4net.dll版本是1.2.11.0;

2)引用的1.2.10.0版本的dll名不是log4net.dll而是log4net10.dll

解决方法:法一、在全局程序集缓存中卸载高版本dll、安装低版本dll(如:log4net.dll 卸载1.2.11.0版安装1.2.10.0)

法二:将法一中的安装低版本dll(如:log4net.dll 卸载1.2.11.0版安装1.2.10.0)改为:首次加载dll时,dll名与空间名一致(如:将引用的1.2.10.0版本的dll名log4net10.dll改回log4net.dll)

安装dll在全局程序集缓存中需要dll名和空间名一致,否则安装不上。

注:1)打开GAC(全局程序集缓存):开始菜单-Microsoft Visual Studio -Visual Studio Tools-Visual Studio 2008 命令提示,在控制台中输入 gacutil.exe

  2)若无法卸载全局程序集缓存内dll: 一个或多个应用程序需要此程序集。则查看“挂起引用”中的程序,先卸载掉(如:HTML5PointSDK)再卸载全局程序集缓存内dll

  3)卸载:gacutil.exe /u log4net;安装:gacutil.exe /i E:\working\Build\PMaker.Build\bin\log4net.dll

 

6、程序权限问题

 

posted @ 2016-01-14 17:12  慧由心生  阅读(653)  评论(0编辑  收藏  举报