
啊我错了
debehe
小人物
展开
-
错误:界面贴图用gif而不用bmp
gif文件比bmp文件小,是的,确实小,但是用压缩工具压缩之后bmp却是比gif还要小,因为通用的压缩算法对gif压缩不起作用,基本上跟没压缩是一样的,而bmp却有着很高的压缩率。所以,如果想要一个软件的安装包小的话,用bmp而不是gif是个好的选择 ,当然这是针对比较小的图片文件。原创 2008-04-11 23:54:00 · 688 阅读 · 0 评论 -
SendMessage的执行线程
一直以为SendMessage和普通的函数调用是一样的,原来不是。SendMessage虽然是同步调用,但做法其实是在调用的线程处等待窗口线程的消息处理结束(执行操作的还是句柄所在的窗口线程)如:主线程是个窗口线程,在另外一个工作线程中调用了窗口线程的SendMessage,那么执行的过程是:1.工作线程挂起2.切换到窗口线程,执行对应的消息处理3.切换回工作线程原创 2009-11-13 17:52:00 · 1897 阅读 · 0 评论 -
warning C4307: '+' : integral constant overflow或warning C4307: “+”: 整型常量溢出
取个文件大小都给我来警告:warning C4307: + : integral constant overflow或warning C4307: “+”: 整型常量溢出 问题出在这一句:DWORD dwFileSize = (FindData.nFileSizeHigh * (MAXDWORD+1)) + FindData.nFileSizeLow; 显然问题原创 2009-07-12 16:29:00 · 5225 阅读 · 1 评论 -
托盘在XP下不能显示tooltip,在Vista和Windows7下正常
奇怪的问题,想了很多可能的理由,最终的答案竟然是一开始就被我否认了的一种可能!! 问题现象:调用Shell_NotifyIcon,在Vista和Windows 7上可以正常显示托盘的Balloon ToolTips,但在XP下却不行,而且函数返回值和GetLastError都正常。 问题的原因:1、有问题的系统版本声明:// 是具有运行应用程序所需功能的 Windows原创 2009-06-24 12:52:00 · 2750 阅读 · 6 评论 -
WM_NCHITTEST后鼠标消息收不到
问题:我出来的WM_NCHITTEST,但同时又想处理WM_RBUTTONUP,可以结果却是两者无法共存。而我的需求就是“两者共存”。问题原因:对 WM_NCHITTEST与WM_LBUTTONDOWN、WM_NCLBUTTONDOWN、WM_LBUTTONUP、 WM_NCLBUTTONUP、WM_RBUTTONUP、WM_NCRBUTTONUP、WM_MOUSEMOVE原创 2009-08-05 16:48:00 · 5697 阅读 · 3 评论 -
Apache和vsftpd共有目录www的权限设置
Ubantu下安装了Apache和vsftpd,要达到的效果是通过FTP上传到服务器目录下的文件可以被正确访问。 可以遇到了问题:You dont have permission to access /testpages on this server. 原来是权限问题!我是先搭好的Apache,测试没问题。后面配置vsftpd的时候,为了满足vsftpd.conf中的配置:原创 2009-05-06 15:06:00 · 5955 阅读 · 0 评论 -
SetLayeredWindowAttributes参数错误
今天在程序中调用SetLayeredWindowAttributes竟然不成功,返回值为0,GetLastError提示:参数错误而这样的代码我已经不止一次用过,在若干次搜索尝试后发现:SetLayeredWindowAttribute does not work for child windows具有WS_CHILD风格的子窗口,无法使用SetLayeredWindowAttribu原创 2009-04-27 23:37:00 · 6469 阅读 · 2 评论 -
windows7下缺少msxml.dll
装了windows7,并安装了vs2005,其他工程没有问题,但是构建某个工程时却出现了error: cant find msxml.dll在system32目录下一找才发现原来确实没有这个文件,从虚拟机的xp里拷了个过来,嘿嘿竟然编过了。 windows 7 还不是十分成熟,虽然比vista好用了不少,但要超过xp,还有很多细节需要完善。原创 2009-02-02 12:06:00 · 3189 阅读 · 0 评论 -
NSIS版本号比较-VersionCompare Bug
问题:今天发现自己之前写的NSIS脚本中有个BUG,BUG的来源正是NSIS的版本号比较函数:VersionCompare这个函数在比较"2008.3.15.1"和"2008.05.1.10"返回的不是期待的2,却是1于是,可怕的事情发生了…… 解决:同类的几个函数,经过一番测试,采用下面这个函数。http://nsis.sourceforge.net/Compa原创 2008-12-31 20:39:00 · 5738 阅读 · 0 评论 -
vista下调整分区大小,会导致系统假死
重装vista之前有个朋友看到我的系统盘分区大小,跟我说“你的C盘怎么那么小,我的装vista30G,现在只剩7G了”,当时我还说他“你肯定是乱放东西了”,现在才发现,错的是我,真是对不起。-_-因为我的C盘才分了20G,windows系统的补丁又多又大,重装没两天就发现硬盘吃不消了,关了系统还原还是无法满足,所以没办法,只好调整分区大小。google之后,我用下面的方法实现了我的分区调整原创 2008-06-11 13:34:00 · 1341 阅读 · 2 评论 -
因为滥用智能指针导致的引用计数错误
在我的接口实现类中有一个线程函数,我传了一个this指针作为线程函数的参数,而我在使用的时候不经意的就把这个this指针赋值给了接口智能指针,于是这个引用计数多Release了一次。要对自己的每一行代码负责。原创 2008-04-12 00:17:00 · 1224 阅读 · 0 评论 -
犯过的错
6.以lib加.h方式使用DLL时,使用的文件和dll自己的文件不是同一份,我在.h中添加了一个成员变量,以为不需要对使用的文件进行同步,结果发现这是错的,只要dll这边的导出函数或是导出类的内存结构发生了变化就必须同步.h和.lib,当然如果你所加的变量是放在导出类的最后,可能暂时不会出问题,但如果仔细看每个变量的地址就会发现,是错的! 针对需要同步.h和lib的dll使用解决方案:在Post-原创 2008-04-12 00:03:00 · 633 阅读 · 0 评论 -
错误:容器遍历时eraser导致iterator无效
批注:删除方法1还是有问题,应该先把要删除的元素暂时保存,后一条一条删。by debehe 2008.01.22这个错误又再次犯了,不能不记: )因为容器的每个元素是个结构体,结构体中的元素又是在堆上创建上,所以删除一个元素时,需要先释放结构体中分配的内存.故而:在一个for循环中用iterator遍历容器时,一边遍历一边eraser(iterator),好像没问题,其实确有一个大大的错误原创 2008-04-11 23:41:00 · 1493 阅读 · 0 评论 -
GetModuleHandle“找不到指定的模块”
想使用GetModuleHandle来得到HMODULE却发现GetLastError总是显示“找不到指定的模块”。看了msdn才知道:GetModuleHandle只能得到已经加载到当前进程的内存中的Module,所以还是使用LoadLibrary吧我错了~+_+msdn上的相关说明:The GetModuleHandle function retrieves a module handle f原创 2008-04-12 00:10:00 · 3236 阅读 · 0 评论 -
SetWindowPos竟然会修改Tab Order
关键字:VC Dialog Tab Order SetWindowPos MoveWindow登陆对话框中有两个Edit控件,原来的Tab Order是好的,我用SetWindowPos(带一个参数SWP_NOMOVE)把窗口高度调小了点,本以为很正常的一个操作却导致这个对话框中的Tab Order全部乱掉。找了半天才找到是这个问题~瀑布汗……把SetWindowPos改成MoveWi原创 2009-12-09 11:21:00 · 1587 阅读 · 1 评论