- 博客(38)
- 收藏
- 关注
原创 好的架构比好的代码重要百倍
今天算是好好明白了这个道理程序要想稳定 高效 可扩充 安全 架构必须要设计好...这段时间公司一直是我一个人做程序 从架构设计 到代码的实现 所有的东西都是自己一个人做...哎 我一个小菜鸟 哪能会那么多东西 所以架构设计太烂...没办法 架构不好 需求稍稍一改就要把代码翻个稀巴烂... 吸取教训 记录一点心得 程序设计过程中 尽量让一
2009-08-14 13:22:00
593
原创 有效的隐藏对话框窗口
还是那个U盘小偷遇到的问题 及安静启动 界面隐藏找了很长时间 终于找到了一段非常好用的代码 一般来说 我们隐藏界面的思路都是在OnInitDialog里面调用ShowWindow(SW_HIDE);但是你可以去试试 绝对不行 窗口还是要出来 这个时候就想着要到OnPaint里面去调用哪个函数 确实可以隐藏 但是界面会闪出来一下 再隐藏 非常影响用户的感受
2009-08-13 15:45:00
1064
原创 枚举文件夹中的文件
最近写了一个优盘小偷所遇到的问题就是枚举文件夹中的所有文件因此上网搜索 加上修改 终于实现了所需要求代码如下//枚举 并拷贝文件int CFlashThiefDlg::EnumAndCopyFileSDK(CString strRootPath){ //CFileFind fileFind; //SDK方式 WIN32_FIND_DATA FindFileDat
2009-08-12 10:18:00
1220
1
原创 关于进程重启 关闭
进程重启 或者进程的关闭 RING3 一般应用程序用 /*开头必不可少的链接库*/#include #pragma comment(lib , "Psapi.lib")BOOL CSIM_ServerDlg::RestartProccess(void){ CString processName=""; CString findProcess
2009-08-11 14:51:00
1671
原创 突然感觉到很悲哀...
或许是自己人品太差了似乎自己在哪(无论是网络上 还是生活中)都得不到别人的欢迎总是一个无关轻重的角色心里面很难受想女朋友了 似乎就她和我的家人看重我. 工作继续努力吧 就算是做狗 也要做三年为了她们 就算以后一直做狗 我也要做下去
2009-08-11 11:56:00
569
原创 关于获取一个文件夹
在实际中 经常需要类似 ...浏览 这样的按钮来获取保存的路径名称 该方法在以前的文章中提过但是那种方法都是必须获取一个文件的路径名称 而没法获取文件夹名称有时候我们需要获取用户的保存的路径 因此 原来的方法就不适用了上网找了一下 找到了一断可以满足需求的代码 经过测试 可行效果图如下 代码如下BROWSEINFO bi;
2009-08-10 13:57:00
581
原创 关于WinDbg 设置断点的问题
基础知识 bp 程序运行过程中下断点bu 程序未加载之前下断点bl 列出所有断点bc 清除断点 今天在调试驱动的时候 发现下好断点后 无法调试WinDbg显示 kd> gBreakpoint 11s offset expression evaluation failed.Check for invalid symbols or bad synt
2009-08-05 15:16:00
5240
原创 关于error LNK2026: module unsafe for SAFESEH image
编译驱动的时候可能会遇到这个问题 特别是C++写驱动的时候此时 需要在Source文件中加入一句NO_SAFESEH = 1这样 可以禁用SAFESEH编译选项
2009-08-04 12:17:00
5416
1
原创 C++ 驱动
相关编译错误 参照http://www.driverentry.com.br/blog/2006/10/driver-plus-plus.html
2009-08-04 10:49:00
9998
原创 关于WinDbg + Vmware 调试DDK程序
几经周折 终于学会了如何利用上述工具调试驱动程序了刚刚解决了一个自己的程序的蓝屏问题下面把过程记录下来问题代码如下/******************************************************************************文件名称: MyDDK.cpp*作 者: 李佳*完成日期: 09.7.29******
2009-07-30 14:03:00
1158
原创 将BOOL 类型写入文件
做验证码识别的时候 有时候需要将图片的二值化效果显示出来 麻烦的界面操作肯定没有直接写文件来得快这个时候 将BOOL数组写入文件的这个问题都把我困扰了好长时间今天又遇到了这个问题 哎 还是写下来吧刚开始我的思路是这样的BOOL num1[13][14]; CFile file; file.Open("num1.txt",CFile::modeCreate | CFi
2009-07-30 10:21:00
998
原创 关于CHTMLView在打开窗口的时候弹出IE错误的窗口的解决方案
其实很简单上代码if (!this->GetSilent()) { this->SetSilent(TRUE) ; } 东西不是难 都是不知道 知道了就清楚了
2009-07-28 10:11:00
560
原创 艰难的进程间的通信
刚刚终于将结构体传递到了目标程序了...真的很艰难 总结一下过程 方便以后自己查询 首先 进程间通信要用WM_COPYDATA 消息传递而这个消息的接收者 如果是SDI 程序 如果是通过FindWindow拿到的 一般是CMainFrame的窗口句柄 而这个句柄和CView类的 此时 如果直接发送消息 都是发送到MainFrame里面的 因此 此时需要在M
2009-07-27 09:56:00
614
原创 获取窗口句柄
采用默认的MFC建立的单文档程序很难拿窗口句柄 用SPY++ 也很麻烦 此时 如果改变窗口的名称 应该很简单AfxGetMainWnd ( ) -> SetWindowText (_T("ZHE") ); //改变窗口名称 以便于识别一行代码 改变窗口名称
2009-07-25 15:09:00
525
原创 关于进程间的通信
很郁闷 程序需要改了 而且改的不像样子...没办法 昨天想了一天到底怎么改 终于想到了一种方法服务器 + 客户端 + 多进程的程序架构由一个服务器进程负责管理客户端进程 根据不同的数据分发到不同的客户端处理 这样现在的程序就不用改了 而且以后增加需求的话 只用增加一个程序就可以了但是关于进程间的通信 可是整整弄了一上午... 最后才找到了答案不多说 上代码voi
2009-07-25 10:33:00
656
原创 关于URLDownlaodtoFile()函数下载的验证码图片都一样的问题的解决
使用URLDownloadtoFile的时候 可能遇到网站上下载的验证码图片都一样的问题 今天在csdn上问了这个问题 得到了答案 是由于IE的缓存引起的要先请缓存 DeleteFile(m_wszFileName); DeleteUrlCacheEntry(m_wszURL); URLDownloadToFile(NULL, m_wszURL, m_wszFi
2009-07-22 12:21:00
536
原创 今天使用了visual assist
这个玩意写代码不是一点方便 简直是方便完了 自动补全功能之强大 让我再也不去羡慕MyEclipe的了 推荐大家都去下载一个 VS2008也支持http://www.wholetomato.com/downloads/default.asp
2009-07-21 17:25:00
481
原创 关于Debug
今天公司没什么事情 在公司了解一下驱动 试着编写了一个WDM驱动 Debug的过程不是在编码完成的时候 而是在写程序过程中就出现了 比如 -> 没有成员列表 这个时候 可能是编译器除了问题 你可以删掉.ncb文件 试试看 如果还是不行 那应该就是你的程序出问题了为了图省事 就直接编译吧 反正驱动又不运行 找到了3个错误以后 可爱的 方便的 -> 成员
2009-07-16 10:19:00
442
原创 很不懂 对网络上面的话很不懂
为什么人家简单的文一个问题 非要扯那么多东西?显得自己深谋远虑?显得自己博思广学? 一个很简单的页面加载完成问题 , 别人非要给你扯一堆MSDN的资料出来 ,一个简单的接口可以实现的东西 非要说考虑这个考虑那个 从昨天就开始找如何判断CHTMLView的页面加载完成 到了现在才找到了答案 而答案很简单this->GetBusy(); 就是这么简单的一个函数
2009-07-14 09:43:00
437
原创 终于做好了~
想想一路上真的不容易 这么多的技术难题(对我l来说) 最初看来是没法实现的程序 被我一一攻克了!!!呵呵 今天经理也夸呢开心的一天~
2009-07-09 17:31:00
417
原创 关于ADSL的自动拨号 断号 来实现更换IP的实现
最近在做验证码的识别 昨天终于识别成功了如果要是给别人做刷票的话 免不了要遇到IP限制的问题一个号的方法就是ADSL的拨号 断号 来实现IP变换 但是程序中如何实现呢 ? 网上找了一个方法 命令行模式的C:/Documents and Settings/exlive>Rasdial /?用法: Rasdial entryname [username
2009-07-08 11:12:00
840
原创 关于验证码图片的获取问题
昨天刚刚把验证码识别出来了 今天就又遇到了一个问题....就是如何拿到这个图片 ?请教了网上的一个高人 哎 高人就是高人 一语道破 其实根本就没有我想象的那么复杂 什么一次会话一个验证图片 而是 网站只认最后一次访问的验证码图片 做了一下测试 确实如此 又一个难题消失了!!!目标越来越近哦!!! 至于如何拿到图片嘛 这个就很容易了 一个AP
2009-07-08 09:38:00
695
原创 CString 转换成 wchar_t
今天在用GDI+库里面的Bitmap类打开一个图片的时候 发现加载不了图片 总是显示Invalid Parameters参数无效代码如下Bitmap bmp((WCHAR*)(LPCTSTR)strBmpPath); 调试过程中发现利用上述方法是无法将CString转换成wchar_t的 转换以后都是乱码经过在网上的查询 再加上MSDN的帮助 终于写出了可以加载BMP的代码
2009-07-07 11:04:00
7987
1
原创 痛苦....
程序要加功能了...要去网页查询数据 返回结果但是大多数的网站都有验证码...相当于这次的任务就是识别验证码... 哎 努力努力 如果做好了 源码我会发出来的!!
2009-06-30 16:05:00
537
原创 关于DES 增加了加密字符串的功能
在网上下载了一个DES的加密类 虽然工作很正常 也很好 但是发现没有加密字符串的接口 这个就让我很郁闷了 我是想用DES来加密用户的密码的 可是总不至于让我把密码写到文件去吧 于是没办法 硬着头皮看代码(代码确实写的不大好 没有注释 且排版也很烂) 在理解了加密解密的基础上 增加了2个接口 一个加密字符串的接口 一个解密字符串的接口 //加密字符串函数//参数说明: st
2009-06-29 12:05:00
2268
原创 托盘编程
今天在程序里面加了一个托盘显示的功能~在VCBase上面找到一个类 哎 改了几乎三个小时才把这个功能改好 不过从中也学到了不少东西 一个就是BEGIN_MESSAGE_MAP下面的ON_MESSAGEON_COMMAND的区别 一个是消息 一个是点击菜单发送过来的命令 第一个的函数原型必须是LRESULT ChangeUI(WPARA
2009-06-25 11:58:00
486
原创 关于进度条的简单的使用方法
今天真的好郁闷 找个关于进度条的使用方法 似乎到处都是遮遮掩掩的都是用那个Create函数去创建 用它创建不是不好 但是 我们是新手 用的是VS 里面有画界面的工具 为什么要去创建??再有就是Rect很难填写 位置 大小总不好确定 找了好半天 最后加上一点自己的测试 才弄成功 步骤在需要显示进度条的对话框中增加一个变量 // 进度条 CPro
2009-06-22 16:51:00
637
原创 关于使用多线程的一些日志
在使用多线程时 如果要记录日志 或者打印程序运行动态来跟踪线程运行 最好要在写文件时增加临界区等等互斥访问等控制 Normal 0 7.8 磅 0 2 false false false
2009-06-19 10:53:00
480
原创 MFC的...打开一个对话框 要求获取文件路径的代码
经常遇到程序里面用了一个...按钮 单击后打开一个对话框 获取输入的路径 下面就是这段代码 其实很简单 只不过 不知道而已 CFileDialog dlg(1,NULL,NULL,OFN_HIDEREADONLY ,"All Files(*.*)|*.*||");if(IDOK!=dlg.DoModal()) return;CString strPa
2009-06-16 11:43:00
1663
1
原创 刚刚骂了LR 现在来陪个理 道个歉
刚刚用了LR去做压力测试了...性能之强悍 手写的普通的测试程序简直就是没法比...用手写的 500个用户连接服务器 马上就是一堆10061错误...而且每个程序不能创建多一点点的线程 (超过50) 线程一多 就出现了Runtime Error ..因此 要大概开10几个程序一起跑 而刚用LR去跑 效果是相当的明显 服务器不到3分钟就死掉了...呵呵!! 不错
2009-06-15 15:00:00
546
原创 变态的LR---- LoadRunner
今天主要做软件测试....哎 小公司 没办法 要编程 还要破坏程序...用了LR郁闷的要死 不过还好 最后运气不错 找到了错误的地方为什么说是运气???应为这种错误 真的是好贱/.....不多说 上代码 char ID[5] ; char strSend[74] ="*HQ,"; char Data[65] = ",
2009-06-15 13:56:00
626
原创 自定义消息
很多时候要用到自定义消息 特别是改变界面方面 可以再BEGIN_MESSAGE_MAP中增加ON_MESSAGE (WM_USER_CHANGEUI, ChangeUI) 前面为消息类型 后面为处理函数ChangeUI的函数原型为LRESULT ChangeUI(WPARAM wParam,LPARAM lParam);
2009-06-08 12:15:00
424
原创 错误处理
今天给自己的程序好好增加了一些错误处理的代码特别是检查访问网站是否有错误的地方以及往数据库插入数据的地方 一直没有太使用C++的try catch 大概是受C的影响吧 总是if() {处理代码}这样造成代码很难阅读使用了C++的try以后 基本可以copy到每个要处理的地方去 而且 很省事 C++真是一种优美的语言 感谢Bjarne Stroust
2009-06-05 15:08:00
483
原创 开心
程序的功能越来越完善了 , 心里很开心代码的膨胀问题很严重 现在估计都4000+的代码行了... 还是那句话 No code No result没有代码 就没有功能 没有结果! 慢慢膨胀吧 嘿嘿!
2009-06-04 12:39:00
463
原创 关于注册表
今天给程序里面增加了自动登录的功能 思路是见用户名 密码都保存到注册表之中 一直没有用过注册表 今天试了一下 把一些代码都记录下来吧 //将用户名 数据库地址保存到注册表bool CSetDataBase::SetDBValue(void){ UpdateData(TRUE); HKEY hKey , hKeySub;//定义有关的hKEY
2009-06-04 12:36:00
2087
原创 关于UTF-8
很多时候 做HTTP获取服务器信息的时候都会碰到服务器传回来的HTML编码是UTF-8的这个时候就必须要转换字符了下面这段代码就是这个错用//编码转换 UTF-8 -> Unicode WCHAR* tmp = NULL; tmp = new WCHAR[strHTML.GetLength()+1]; int n = MultiByteToWideCha
2009-06-02 09:28:00
425
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人