
Windows开发
CodeMasterShiller
一个老码农
展开
-
VC++.NET中字符串之间的转换
转自:http://forums.zxbc.cn/thread-54750-1-5.htmlVC++.NET中字符串之间的转换 一、BSTR、LPSTR和LPWSTR 在VisualC++.NET的所有编程方式中,我们常常要用到这样的一些基本字符串类型,如BSTR、LPSTR和LPWSTR等。之所以转载 2008-11-13 16:42:00 · 563 阅读 · 0 评论 -
VS2008快捷键的设置
选择 “工具栏”菜单的 “自定义” 选项,在弹出的对话框左下角,有一个 “键盘” 按钮,点击即可进入设置快捷键的界面。 今天遇到一个问题,BackSpace失效了,无法删除光标前的字符。原因不说了,解决办法是找到 “编辑.向后删除” 命令,将其快捷键重新设置回BackSpace,作用范围是“文本编辑器”原创 2009-10-31 17:22:00 · 5038 阅读 · 1 评论 -
给VA添加代码片段的快捷方式
在VA工具栏上有一个图标,功能是“insert VA snippet”,用来插入代码片段点击该图标,会出现一菜单,菜单中有常用的代码片段可以选择菜单最后一行是"Edit VA snippets",可以编辑代码片段。点击该菜单项,弹出一个编辑对话框点击对话框工具栏左边第一个”new“按钮,新建一个代码片段然后,在title中填入该代码片段的标题shortcut中填入插入该代原创 2010-01-25 15:03:00 · 2155 阅读 · 0 评论 -
Visual C++编程技巧
<br /><br />http://hi.baidu.com/9856226/blog/item/22988ad4aaa0c1cd50da4b20.html<br /> <br />调试dll、exe的时候,需要打log。写文件嘛太麻烦,printf只能在终端不是很灵活。这时候利用windows自带的OutputDebugString可以事半功倍,推荐大家试试。<br /> 跟其他函数一样,它也有两个版本:<br /> WINBASEAPI VOID WINAPI OutputDebugStr转载 2010-06-24 21:51:00 · 1531 阅读 · 0 评论 -
Understanding Win32 "OutputDebugString"
<br /><br />Hardcore Win32 developers are probably familiar with the OutputDebugString() API function that lets your program talk with a debugger. It's handier than having to create a logfile, and all the "real" debuggers can use it. The mechanism by which转载 2010-07-02 12:23:00 · 846 阅读 · 0 评论 -
如何获取BIOS序列号
<br />http://blog.sina.com.cn/s/blog_57dff12f0100d8do.html<br /> <br />typedef struct _UNICODE_STRING<br />{<br /> USHORT Length;//长度<br /> USHORT MaximumLength;//最大长度<br /> PWSTR Buffer;//缓存指针<br />}UNICODE_STRING,*PUNICODE_STRING;<br /><br /转载 2010-07-20 12:28:00 · 9554 阅读 · 0 评论 -
记录几个最近遇到的bug
1、使用java的Process调用Oracle的exp导出备份的时候,发现导出一个表可以成功,而整库备份时总是阻塞在waitFor() 调用。原因:参见此文http://www.javaeye.com/topic/141606 2、使用ADO访问Oracle数据库时,RecordSet获取记录个数时总是返回-1原因:Cursor设置不对,Cursor设置为adOpen原创 2010-05-27 21:04:00 · 646 阅读 · 1 评论 -
用于本机 C++ 的小巧快捷的 XML 分析器
http://msdn.microsoft.com/zh-cn/magazine/cc163436.aspx用于本机 C++ 的小巧快捷的 XML 分析器Kenny Kerr 本文讨论:XmlLite 与其他可用 XML 分析器的比较XmlLite 的优势和限制读取和写入 XMLXML 安全注意事项本文使用了以下技术: XML、转载 2010-05-27 22:18:00 · 1088 阅读 · 0 评论 -
托盘图标编程
from MSDNAdding, Modifying, and Deleting Icons in the Status AreaUse the Shell_NotifyIcon function to add, modify, or delete icons from the status area. The dwMessage parameter of Shell_转载 2010-05-29 11:06:00 · 612 阅读 · 0 评论 -
显示或隐藏程序任务栏图标
隐藏 ::ShowWindow(m_hWnd, SW_HIDE); LONG lStyle = ::GetWindowLong(m_hWnd, GWL_EXSTYLE); lStyle &= ~WS_EX_APPWINDOW; lStyle |= WS_EX_TOOLWINDOW; ::SetWindowLong(m_hWnd, GWL_EXSTYLE, lStyle原创 2010-05-29 11:01:00 · 832 阅读 · 0 评论 -
编写 Windows 服务程序
from http://www.vckbase.com/document/viewdoc/?id=1474 摘要 Windows 服务被设计用于需要在后台运行的应用程序以及实现没有用户交互的任务。为了学习这种控制台应用程序的基础知识,C(不是C++)是最佳选择。本文将建立并实现一个简单的服务程序,其功能是查询系统中可用物理内存数量,然后将结果写入一个文转载 2010-05-29 11:30:00 · 634 阅读 · 0 评论 -
更改显示图片的色度亮度对比度和透明度
<br />AlphaBlend<br />The AlphaBlend function displays bitmaps that have transparent or semitransparent pixels.BOOL AlphaBlend( HDChdcDest, // handle to destination DC intnXOriginDest, // x-coord of upper-left corner i原创 2010-07-27 11:07:00 · 1880 阅读 · 0 评论 -
VLD检测内存泄露原理及源码分析
<br /><br />包含vld.h的时候,使用pragma comment链接vldddlib(采用预编译指令,根据不同的工程链接不同的lib)<br /> <br />通过全局变量<br />VisualLeakDetector visualleakdetector;<br />的构造和析构来启动和终止内存跟踪<br /> <br />构造函数中使用_CrtSetAllocHook函数设置钩子函数捕获_HOOK_ALLOC、_HOOK_FREE、_HOOK_REALLOC等事件。<br />设置钩子函原创 2010-07-28 10:42:00 · 4810 阅读 · 0 评论 -
VS程序发布问题
<br />http://www.cnblogs.com/visoeclipse/archive/2010/02/27/1674866.html<br /> <br /> <br />http://hi.baidu.com/fairysky/blog/item/130dda13db7b050a5aaf53be.html<br />http://hi.baidu.com/fairysky/blog/item/e7a8366dbaa735f3431694c8.html<br />http://www.cppbl转载 2010-07-28 14:19:00 · 803 阅读 · 0 评论 -
windows图标叠加
<br /><br /> http://timgolden.me.uk/python/win32_how_do_i/add-my-own-icon-overlays.html#asterisk需要注意,运行程序注册完之后,需要重启explorerIsMemberOf函数是条件判断,返回S_OK则叠加指定的图标GetOverlayInfo返回图标文件地址Add my own icon overlays<br />Tim Golden > Python Stuff > Win32 How Do I...? >转载 2010-12-15 20:09:00 · 1789 阅读 · 0 评论 -
获取cpu占用率
from http://topic.youkuaiyun.com/t/20060330/19/4652332.html // cpusagent.cpp (Windows NT/2000) // // Getting the CPU usage in percent on Windows NT/2000 // // (转载 2009-10-14 11:08:00 · 782 阅读 · 0 评论 -
获取cpu频率
from http://www.codeproject.com/KB/system/Processor_Speed.aspxIntroductionIll show you two ways to retrieve the processor-speed (frequency in MHz). With two simple functions, one to retrieve转载 2009-10-14 11:04:00 · 1016 阅读 · 0 评论 -
如何在DATE与SYSTEMTIME之间转化
某些COM组件用到的时间数据类型是DATE,我们可以查到,DATE类型定义如下:typedef double DATE;DATE变量可以直接赋值给_variant_t对象,在用ADO访问数据库的时候,需要在_variant_t和SYSTEMTIME之间转换,MS提供了如下两个函数:SystemTimeToVariantTimeSystemTimeToVariantTimeConverts a原创 2008-11-14 08:39:00 · 5570 阅读 · 1 评论 -
windows 消息机制的一些了解
1、谁拥有消息队列拥有消息队列的不是进程、也不是窗口,是线程,每一个线程都有自己的消息队列。而窗口则也是属于创建它的闲扯的2、消息队列是什么时候建立的一个线程不是一定有消息队列的,只有在user或gdi这两个系统dll中的api第一次被调用时才建立消息队列。3、消息队列最大有多大?可不可以更大默认消息队列的大小是10000,这个最大值最小可以设为4000。修改如下注册表项可以更改其值:HKEY_L原创 2008-11-25 15:08:00 · 952 阅读 · 0 评论 -
使用MSXML解析XML文件的中文问题
使用msxml解析xml文件时,对xml文件的编码格式是比较敏感的。如果文件中包含了其它字符,则会导致load文件失败。一般默认的字符集是不包含中文的,所以我们得在第一行中显示标明编码格式。一般来说,encoding设为utf-8或者gb2312都行,但是相应地,xml文件也得保存为该格式。原创 2008-12-05 08:39:00 · 1159 阅读 · 0 评论 -
如何从DLL或者DEF文件生成LIB文件
如何从dll文件导出对应的lib文件? Visual C++ 开发工具提供了两个命令行工具,一个是dumpbin.exe,另一个是lib.exe。利用这两个工具即可从dll导出其对应的lib。 1、在命令行执行: dumpbin /exports yourdll.dll > yourdll.def转载 2008-12-05 14:28:00 · 913 阅读 · 0 评论 -
几个完成端口API简介
HANDLE CreateIoCompletionPort ( HANDLE <a class="synParam" onclick="function onclick(){showTip(this)}" href="http://mk:@MSITStoreC:/Program%20Files/Microsoft%20Visual%20Studio/MSDN/2001JUL/原创 2009-04-14 09:22:00 · 1332 阅读 · 0 评论 -
程序中访问远程共享文件夹
#include #include #include #pragma comment(lib, "Mpr.lib")void main(){ NETRESOURCE nr; DWORD res; TCHAR szUserName[32] = "test", szPassword[32] = "test", szLocalName[32] = "原创 2009-05-06 10:08:00 · 1232 阅读 · 0 评论 -
signal的实现
系统采用如下结构体存储信号以及其对应的名字和处理函数typedef struct _sig_element{ int signal; char *signame; __p_sig_fn_t handler;}sig_element;static sig_element [];signal函数的实现:for(i=0; i sizeof(signal_lis原创 2009-05-12 09:48:00 · 702 阅读 · 0 评论 -
VC自定义向导编写
项目中某一个程序设计成插件模式,由于要开发大量的插件,所以想为插件开发一个project wizard,就是在新建工程的时候,可以有一个模板可以选,就像选择创建MFC exe或MFC dll工程一样。 VC6的工程模板里有一个custom appwizard就是做这个用的。以这个为模板创建工程后,可以选择设置向导的步数。每一步对应一个Dialog类,在点下一步或完成的时候,会调用该对话框的原创 2009-08-10 23:49:00 · 1056 阅读 · 0 评论 -
如何将模态对话框变为非模态
当一个窗口弹出一个模态子对话框时,在模态子对话框未退出时,主对话框是无法访问的。就本质而言,一般是在弹出模态对话框时,将父窗口禁止了。 因此,可以采用如下方法,解除模态关系:1、使用SPY++获取模态窗口的父窗口(即被禁止)句柄2、使用第三方程序通过该句柄激活窗口即可。 因此,一些通过模态对话框强制输入密码进行锁定的程序是不安全的。 激活窗口的示例代码原创 2009-08-12 16:55:00 · 2095 阅读 · 1 评论 -
开始进行 64 位 Windows 系统编程之前需要了解的所有信息
http://www.microsoft.com/china/MSDN/library/Windev/64bit/issuesx64.mspx?mfr=true 欢迎来到 MSDN > Windows 开发开始进行 64 位 Windows 系统编程之前需要了解的所有信息发布日期: 2006-5-30 | 更新日期: 2006-5-30本文讨论:转载 2009-08-19 09:12:00 · 974 阅读 · 0 评论 -
Nameless源码分析
Nameless是以开源的后门程序,也可作为学习windows编程的经典样例。 安装调用Install或InstallService函数,将Nameless注册为系统服务,主要通过写注册表的方式实现。参见InstallService函数源码。"SYSTEM//CurrentControlSet//Services//"下注册系统服务"SOFTWARE//Microsoft//I原创 2009-06-17 09:21:00 · 1025 阅读 · 0 评论 -
再谈进程与端口的映射
转自:http://www.xfocus.net/articles/200202/344.html 创建时间:2002-02-05文章来源:www.whitecell.org文章提交:ILSY (masteruser_at_263.net)Author : ilsy Email : ilsy@whitecell.org HomePage: http://www.whitecell转载 2009-08-22 10:50:00 · 567 阅读 · 0 评论 -
hosts文件作用
在系统目录(一般为system32)下的/dirvers/etc/子目录下,有一文件名为:hosts 此文件记录了一些主机名对应的ip地址。在系统需要解析某一主机名时,它会先检查此目录,在找不到匹配项的情况下,才会向域名解析服务器发送请求。 360安全卫士通过修改此文件,把一些恶意网站的域名定位为本机回环ip地址127.0.0.1来达到保护的目的。 同时我们也可以修改此文件原创 2009-06-19 10:11:00 · 1253 阅读 · 0 评论 -
获取系统系统所有TCP以及UDP端口使用情况
GetTcpTableGetTcpTableThe GetTcpTable function retrieves the TCP connection table.DWORD GetTcpTable( PMIB_TCPTABLE pTcpTable, // buffer for the connection table PD原创 2009-06-19 12:50:00 · 1348 阅读 · 1 评论 -
编程刷新explorer
<br /><br />from win32com.shell import shell, shellcon<br />def notify(f):<br /> shell.SHChangeNotify(shellcon.SHCNE_UPDATEITEM, shellcon.SHCNF_PATH|shellcon.SHCNF_FLUSHNOWAIT, f, None)<br /> <br />notify("c:/usr/local")原创 2010-12-17 21:59:00 · 1265 阅读 · 0 评论