博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VS中遇到的奇怪问题
阅读量:7239 次
发布时间:2019-06-29

本文共 2093 字,大约阅读时间需要 6 分钟。

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、程序权限问题

 

转载地址:http://korfm.baihongyu.com/

你可能感兴趣的文章
避繁就简为数据中心减负
查看>>
我的Android进阶之旅------>Android字符串资源中的单引号问题error: Apostrophe not preceded by 的解决办法...
查看>>
2015 年度 Android 开发者必备的 5 个开源库
查看>>
GLUT Trackball Demo
查看>>
SQL集合操作符样例(UNION,INTERSECT,EXCEPT)
查看>>
Spark-SparkSQL深入学习系列十一(转自OopsOutOfMemory)
查看>>
JAVA Eclipse使用Maven构建web项目详解(SSM框架)
查看>>
高校银行协同 信息校园一卡通行
查看>>
论MongoDB索引选择的重要性
查看>>
建设互联网医疗的思考
查看>>
澄清云计算概念 解析云计算现状
查看>>
应对5G网络需求,G.metro技术逐步走向成熟和应用
查看>>
【LeetCode从零单排】No104 Maximum Depth of Binary Tree
查看>>
使用使用Zopfli优化PNG图片
查看>>
德扑 AI 之父托马斯·桑德霍姆:扑克 AI 如何完虐人类,和 AlphaGo 大不同
查看>>
最常用的四种大数据分析方法
查看>>
极进网络石奇海:向802.11ac技术智能迁移的八大考虑要素
查看>>
中央财经大学创新创业中心主任尚超:大数据技术在防范虚假发票中的应用
查看>>
测试硬件,不妨试试这5款应用
查看>>
《数字逻辑设计与计算机组成》一3.8 实数算术
查看>>