C/C++
熬夜程序猴
胖男人
展开
-
使用LoadImage载入本地位图
HBITMAP hLEDBmp = NULL; hLEDBmp = (HBITMAP)::LoadImage(::GetModuleHandle(NULL), g_szImgFileName, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION ); 在位图控件里显示位图 ::SendDlgItemMessage(hwnd, ID原创 2010-10-19 08:25:00 · 2014 阅读 · 0 评论 -
可控制遍历深度的文件搜索类
可控制遍历深度的文件搜索类原创 2013-08-28 11:03:10 · 1078 阅读 · 0 评论 -
APIHOOK
弄了三天,终于成功的HOOK上了CreateProcess。代码如下001 /*================================================================002 * 函 数 名: OldFunc2NewFunc003 * 参 数:004 * FARPROC pOldFunc [IN] : 原API原创 2013-07-03 09:50:17 · 1102 阅读 · 0 评论 -
ODBC API 使用SQLPutData实现SQL数据库BLOB(TEXT、IMAGE类型字段)数据提交[原创](一)
问题帖链接:http://topic.csdn.net/u/20100928/16/19d8bca9-15c1-4c88-b65b-bc397e81ce92.html?seed=1898436924&r=68769050#r_68769050存储过程如下 create proc test_blob_pInsert ( @user_memo text, @user原创 2010-11-10 03:00:00 · 3439 阅读 · 0 评论 -
QuickSort
0001 void QuickSort(int data[], int startIdx, int dataCount)0002 {0003 int key = data[startIdx];0004 int left = startIdx;0005 int right = dataCount - 1;0006 static int idx = 1;00原创 2011-06-03 08:52:00 · 661 阅读 · 0 评论 -
创建指定大小的空文件
利用CreateFileMapping函数的可扩展文件大小的特性,创建指定大小的空文件 /* * 创建指定大小的空文件,支持超大文件(16EB),小于4GB时, * 参数dwHigh可传入0, * 成功返回0, 失败返回错误代码 */ BOOL CreateNullFile(DWORD dwHigh, DWORD dwLow, LPCTSTR lpcszFileName) { BOOL bResult = FALSE; HANDLE hFile = :原创 2011-03-15 03:33:00 · 5018 阅读 · 0 评论 -
unsigned short 类型转换成4字节Byte数字
VOID WordToBytes(BYTE bytes[4], WORD n) { for(int i = 0;i > (24 - i * 8)); } } WORD BytesToWord(BYTE b[]) { return (((WORD)b[0])原创 2011-02-24 04:55:00 · 3873 阅读 · 0 评论 -
自定义的互斥量类,可以用于线程或进程的同步
#ifndef __MUTEX_H #define __MUTEX_H #include class CMutex { public: CMutex(LPCTSTR pszMutex) { SECURITY_ATTRIBUTES sa; sa.nLength = sizeof(sa); sa.lpSecurityDescriptor = NULL;原创 2011-03-10 07:58:00 · 778 阅读 · 0 评论 -
正整数转成字符串 简单算法
int Number2Str(__int64 longNumber, char *szNumStr) { char szLongNumber[32] = {0}; int nLen = 0; while(longNumber > 0) { int n = longNumber % 10; longNumber /= 10; szLongNumber[nLen++] = (char)(0x30 +原创 2011-03-09 05:59:00 · 1266 阅读 · 0 评论 -
winsock2.h和windows.h冲突问题的解决方案
方案一:在头文件的include时,始终把winsock2.h放在windows.h之前 方案二:在头文件的#include之前定义如下宏 #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #endif 期待其他解决方案.原创 2011-02-15 06:12:00 · 2802 阅读 · 0 评论 -
显示调用DLL 应该注意DLL导出函数的调用约定问题
在应程序调用DLL的导出函数时应该注意函数的调用约定问题, 有DLL导出如下: DLL_EXPORT_FUNC BOOL WINAPI ShowMsg(); 在APP中应该使用 typedef BOOL(WINAPI *FPSHOWMSG)(VOID); FPSHOWMSG pfShowMsg;原创 2011-01-23 03:52:00 · 1182 阅读 · 0 评论 -
使用EnumChildWindows函数遍历窗体上所有控件
BOOL CALLBACK HideAllWin(HWND hwnd,LPARAM pParam) { HWND phWnd = (HWND)pParam; // 指定窗口的句柄 if( NULL==hwnd ){ return FALSE;} if( ::IsWindow(hwnd) ) { // 对控件进行操作 ShowWi原创 2011-01-15 17:35:00 · 11432 阅读 · 0 评论 -
VS2008 PRO 、WDK 和DDKWizard搭建Windows7驱动开发环境[转]
标题:VS2008 PRO 、WDK 和DDKWizard搭建XP驱动开发环境 作者:Jesses 时间:2009.12 一下引用了作者:eping的文章内容并根据我的环境做了修改。 说明:pediy 有篇VS2008、DDK XP和DDKWizard搭建驱动开发环境的文章。作者为bleyes ,本人在搭建vista驱动开发环境时遇到了些问题..故对其再做一些总结....希望后来的读者遇到有跟我同样的问题时能少走弯路.......在此向前作者表示感谢!原创 2010-10-27 06:45:00 · 2674 阅读 · 0 评论 -
VS 2008 C/C++的代码折叠显示
菜单:[工具]->[选项]->[文本编辑器]->[C/C++]->[格式设置]->勾选[语句块的自动大纲显示] 即可实现 代码折叠显示原创 2010-10-20 15:38:00 · 5176 阅读 · 1 评论 -
printf 格式化输出控制
载自: http://dev.firnow.com/course/3_program/c++/cppjs/20090830/172982.html 1.转换说明符 %a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99) %c 字符 %d 有符号十进制整数 %f 浮点数(包括float和doulbe) %e(%E)原创 2010-10-19 08:24:00 · 813 阅读 · 0 评论 -
在DLL中使用DLL自身资源时的问题及解决方案
最近的项目中其中一个DLL本身携带了位图资源,在DLL中使用位图资源使用LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURE(id)),无法找到资源文件。经过自己的经验及资料翻找后终于找出问题的所在。DLL在应用程序加载后地址空间发生了改变,此时在使用到位图的地方使用GetModuleHandle得到的是应用程序的地址空间,而非DLL的本身的地址空间。知道原因之后,就简单了,在DLL的入口函数中直接获取实例句柄,保存待用。本来也不会出现这个问题,原因是我原创 2010-10-19 08:26:00 · 860 阅读 · 0 评论 -
用单件模式 实现全局变量
01 #ifndef __GLOBAL_VAR_INC__ 02 #define __GLOBAL_VAR_INC__ 03 04 #define BOOL int 05 #define FALSE 0 06 #define TRUE 1 07 08 09 class GlobalVarClass 10 { 11 static GlobalVarClass *pInstance; 12 public: 13 static Gl原创 2011-04-03 04:58:00 · 1214 阅读 · 0 评论