|
|
|
[推荐]VisualC++初学者入门的一条捷径
我大三、大四两年都试图学习VC, 最终以太难了而放弃了 毕业后, 因为工作要用,只好从头学,用了近4年的时间学习,才终于算是可以写程序了 关键是入门, 入了门之后, 就容易多了 |
|
[原创]女人是不是不适合学逆向啊
我靠, it的男人都寂寞呀, 无论是哪个论坛上, 只要是女人发贴带图片, 帖子一定很火, 居然顶到500多楼了, 这么多饥渴的男人呀 |
|
|
|
[原创][2011.01 更新SDI版本]2010的留念 [开源] 发个最近写的Pe工具~
gooooooooooooooooooooooooooooooood |
|
[分享]OllyDbg命令行命令+汇编指令大全
先占个位, 以后再来下载 |
|
[原创]DirectUI技术开发界面
我有一个建议, 大家把分析的结果和理解都写在这里, 甚至自己写的demo也放在这里, 而且弄个详细一点的说明, 这样大家都有个参考, 通过讨论, 可能更快的明白这里的实现过程。 虽然这个库用于写大一点的软件不现实, 但是偶尔用用写写比较小的程序,还是挺不错的, 尽管写起来有些复杂。 如果这个库经过细致的修改和完善, 设计一套合理的简易的处理过程, 将xml结构化, 形成一套完整的机制, 然后再写一个界面设计器, 自动生成界面xml, 这样, 我觉得就可以投入正常的使用了, 可能不满足大型软件的设计, 但是一般的中小型的软件还是可以胜任的。 不知道有没有这方面兴趣的人, 一起来搞一下? |
|
[原创]DirectUI技术开发界面
由于只有一个窗口, 其它的所有的所谓的子控件全部为绘制的, 所以子控件的管理、事件、消息, 全部由窗口管理器来统一处理和调度, 看明白CPaintManagerUI的消息派发和处理过程是最为关键的 |
|
[原创]DirectUI技术开发界面
这玩意没有说明文档, 只能靠修改xml, 然后在断点试了, 这个学习速度就太慢了 我研究一个晚上, 拿那个360SafeDemo为例, 他的大概过程是这样的: 1. C360SafeFrameWnd 继承自CWindowWnd和INotifyUI, 创建一个新的窗口 2. 由这个新窗口的窗口处理过程处理来自windows的窗口消息, 该处理是在 LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam) 这个虚函数中进行的 3. 在WM_CREATE中根据xml创建窗口界面,这个创建过程是一个递归的创建过程, 创建完毕后,将自己注册 到窗口管理器CPaintManagerUI, 这样就可以由窗口管理器进行统一调度,包括绘制界面以及子控件消息 处理 4. void Notify(TNotifyUI& msg)虚函数中处理来自控件的通知消息 整个消息的传递过程是这样的: 继承窗口先处理消息,如果继承窗口没有处理, 则由CPaintManagerUI的消息链处理 如果消息链还不处理, 则丢给窗口CWindowWnd处理 C360SafeFrameWnd ==> CPaintManagerUI ==> CWindowWnd(基类) 不知道我理解的对不对? |
|
[原创]DirectUI技术开发界面
这个界面布局有什么规则和要求? 为什么我仿照写的xml布局很多时候达不到我想要的效果? 这些控件自绘的属性有没有比较详细一点的说明, 感觉现在都是慢慢尝试, 速度太慢了 那个CEditUI如何支持多行? |
|
[原创]DirectUI技术开发界面
我把utf-8格式的xml修改, 再次保存的时候, 会在最前面加三个字节:0xEF,0xBB,0xBF 而这3个字节就是utf-8格式在windows下的标识 可是问题是WideCharToMultiByte( CP_ACP, 0, (LPCWSTR)w_str, nWide, m_pstrXML, wide, NULL, NULL); 转换的时候不知道哪儿出现了问题 如果用16进制编辑器看, 多3个字节0xEF,0xBB,0xBF 可是, 调试的时候,看到实际的字符却只多一个'?' 在16进制编辑器中, 把前面多出的3个字节删掉, 然后保存, 运行没有问题 或者是转换后, 做一下处理: if ( lstrlen(m_pstrXML) > 1 && m_pstrXML[0] == TEXT('?') ) ::MoveMemory(m_pstrXML, &m_pstrXML[1], lstrlen(m_pstrXML)); 这样也没有问题, 虽然bug解决了, 可是还是不明白,为何WideCharToMultiByte的转换会多一个问号 谁能说明白这个问题 |
|
[原创]DirectUI技术开发界面
由于无法直接将utf-8转换为ansi,这里面做了2次转换 第一次是把utf-8的转换为宽字符的 第二次把宽字符的转换为ansi字符的 这样间接的吧utf-8转换为ansi, 可问题是, 转换代码似乎没有什么问题, 但是第二次转换的时候, 却总是在xml的最前面多出一个问号, 比如宽字符下看到的结果是: <?xml version="1.0" encoding="UTF-8"?> 但是转换后变成了?<?xml version="1.0" encoding="UTF-8"?> 我一直没有搞明白是为什么? 难道是我修改后保存的编码有问题? 可是我用的是微软的XML notepad修改的, 应该不会修改它的编码呀 |
|
[原创]DirectUI技术开发界面
为什么xml改动一个字符就造成了解析错误? 比如我将360改为370, 结果就解析错误, 感觉是编码造成的, 但是我查了一下编码转换函数, 用的似乎没有问题, 不知道问题出在哪里? 我跟踪了一下, 发现问题: m_pstrXML = static_cast<LPTSTR>(malloc((wide + 1)*sizeof(TCHAR))); WideCharToMultiByte( CP_ACP, 0, (LPCWSTR)w_str, nWide, m_pstrXML, wide, NULL, NULL); m_pstrXML[wide] = _T('\0'); 当用WideCharToMultiByte 将宽字符转换为Ansi的时候, 总是在xml的最前面多出一个? 造成xml解析错误 我一直搞不明白怎么会多出一个问号? |
|
|
|
|
|
[注意]《加密与解密(第三版)》额外的电子文档
坛主好人呀, 我买了好久了, 都忘了看了 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值