- 博客(149)
- 资源 (24)
- 收藏
- 关注

原创 这是吿诉自己,要学会...
我一再吿诉自己,能不发火就不发火,要尽量的控制自己,不要显的那么斤斤计较。 01.每天告诉自己一次,『我真的很不错』。 02.生气是拿别人做错的事来惩罚自己。 03.生活中若没有朋友,就像生活中没有阳光一样。 04.明
2007-10-10 21:10:00
1121
1
原创 Delphi两个有用的函数
function StrToHexStr(const s: string): string;var i: Integer; vBuff: TBytes; AnSiStr: AnsiString;begin Result := ''; if s = '' then Exit; vBuff := BytesOf(AnsiString(s)); fo
2013-05-21 09:50:16
3693
转载 Delphi实现AnsiString与WideString的转换函数
在Delphi下,AnsiString 和 WideString 的存储与管理各有不同,这里提供互相转换的函数一对。/// Wide String -> Ansi Stringfunction WideStringToAnsiString(const strWide: WideString; CodePage: Word): AnsiString;var Len: integer;be
2013-01-26 16:23:14
9310
原创 StrToHex
function StrToHex(s: string): Integer;begin Result := StrToInt('$' + s);end;
2013-01-26 16:17:18
2158
原创 Delphi静态变量
在Delphi中也可以定义静态变量, 有两种方法:一是使用编译开关{$J+}{$J-}包含一个常量定义二是使用指针操作常量下面列出示例代码:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCt
2013-01-03 23:50:00
3460
转载 C++文件(夹)选择对话框
由于各种应用,我们需要调用系统的打开文件对话框或者打开文件夹对话框,或两者兼有。今遇到这个情况已经解决,特写下这篇博文。1.打开文件对话框常用的方法是使用系统的CFileDialog。这里介绍另外一种方法就是使用OPENFILENAME这个结构体和GetOpenFileName()这个函数,可以实现单选文件或者多选文件,代码如下:TCHAR szBuffer[MAX_PATH] =
2012-12-26 17:05:16
16220
原创 读取ZIP文件
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include using namespace std;#define SECTION_LENGTH 0x0000002E //每个SESION的长度, 不带名字#define SECTION_DES_LENGTH_POS 0x
2012-12-22 17:37:19
2755
原创 C++读写二进制文件
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;typedef struct _my_data_type{ int ID; char Text[20];}MY_DATA_TYPE, *PMY_DATA_TYPE;void Write
2012-12-21 18:33:56
1150
原创 C++计算一条直线上某点的坐标
假设起点(X1, Y1) 终点(X2, Y2), 间距(从起点开始一段距离)为R两点之间的距离 S = sqrt(pow(X2-X1, 2) + pow(Y2-Y1, 2))方法一:方位角: F = atan((Y2-Y1)/(X2-X1))方位角概念: 方位角又称地平经度(Azimuth (angle)缩写Az)是在平面上量度物体之间的角度
2012-12-17 17:46:06
7321
1
原创 Delphi关闭进程
procedure TForm2.Button2Click(Sender: TObject);var h: HWND; dwPid: DWORD; hThreadProcess: THANDLE; s: string;begin h := FindWindow(PChar(Edit2.Text), PChar(Edit1.Text)); if h > 0
2012-12-16 21:05:22
2046
转载 VC编译LUA与调用
环境vs2010,lua版本5.2新件一个空项目,添加所有src内的文件,然后移除lua.c, lua.h, luac.c, print.c文件.选择项目-属性-配置属性-常规-配置类型,即可选择生成静态库或动态库.下面演示一个c++调用lua函数的例子.test.lua代码function MaxMin(x, y) if x > y then re
2012-12-10 15:58:20
847
原创 CtrlList判断点击的是否为CheckBox
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR);if ( 0 == pNMItemActivate->iSubItem ){ TCHAR sText[MAX_PATH] = { 0 }; DWORD dwPos = GetMessagePos(); CPoint point( LOWORD(dwPos), HIW
2012-12-07 14:35:43
1354
原创 Detours库下载
http://research.microsoft.com/en-us/downloads/d36340fb-4d3c-4ddd-bf5b-1db25d03713d/default.aspx
2012-10-29 15:20:40
2218
转载 CMP指令
cmp指令cmp是比较指令, cmp的功能相当于减法指令,只是不保存结果。cmp指令执行后,将对标志寄存器产生影响。其他相关指令通过识别这些被影响的标志寄存器位来得知比较结果。比如:mov ax,8 mov bx,3 cmp ax,bx执行后:ax=8,ZF=0,PF=1,SF=0,CF=0,OF=0. 通过cmp指令执行后,相关标志位的值就可以看出
2012-10-28 23:07:28
3025
原创 CListCtrl虚拟列表技术
创建列表列m_LstCtr.InsertColumn(0, L"列1", LVCFMT_CENTER, 40);m_LstCtr.InsertColumn(1, L"列2", LVCFMT_CENTER, 80);m_LstCtr.InsertColumn(2, L"列3", LVCFMT_CENTER, 0); //列宽为零, 标识隐藏该列m_LstCtr.InsertColumn(3,
2012-10-28 14:59:43
7838
原创 刷新桌面
//--刷新桌面1、SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL);2、HWND hWndDesktop = (HWND)GetDesktopWindow(); InvalidateRect( hWndDesktop );
2012-10-27 13:23:00
1183
原创 __try __except __finally
void CGetColorDlg::OnBnClickedOk(){ // TODO: 在此添加控件通知处理程序代码 TCHAR *sText = new TCHAR[MAX_PATH]; __try { wsprintf(sText, L"finally测试"); MessageBox(sText); __try { MessageBox(L"except测试"
2012-10-22 10:58:29
749
原创 C++屏幕取色
void CGetColorDlg::OnTimer(UINT_PTR nIDEvent){ // TODO: 在此添加消息处理程序代码和/或调用默认值 POINT pt; COLORREF cr; HDC hdcScreen; TCHAR szBuffer[255] = { 0 }; switch (nIDEvent) { case MY_TIMER: {
2012-10-18 21:20:53
3396
原创 MFC静态发布应用
1. 配置 活动 Release2. 项目->属性->配置属性->常规->MFC的使用 设为: 在静态库中使用MFC3. 项目->属性->配置属性->C/C++->代码生成->运行库 谁为: 多线程(/MT)如果编译出现如下类似错误:nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsign
2012-10-12 22:30:42
917
转载 HOOK实现
在别的网站上找的, 觉得不错, 记录一下DLL部分:functions.#include #include #pragma comment( lib, "Ws2_32.lib" ) #pragma comment( lib, "detours.lib" ) #pragma comment( lib, "detoured.lib" ) int ( WINAPI *Re
2012-10-07 16:59:02
706
转载 汇编标志位
标志位长用来对上一步运算结果进行判断 进行跳转比如JZ JNZ(jump if not zero) JE JNE 等等 很多指令都能用到的OF overflow flag 溢出标志 操作数超出机器能表示的范围表示溢出,溢出时为1. SF sign Flag 符号标志 记录运算结果的符号,结果负时为1. ZF zero flag 零标志 运算结果等于0时为1,否则为0. CF
2012-10-05 00:02:44
1765
原创 GetModleFileName和GetModuleBaseName的区别
GetModleFileName返回进程名包含路径GetModuleBaseName返回进程名不包含路径下面是获取当前进程名的方法GetModleFileName(NULL, lpText, sizeof(lpText));GetModuleBaseName(GetCurrentProcess(), NULL, lpText, sizeof(lpText));使用GetModuleBa
2012-09-28 16:46:20
8717
2
原创 CListCtrl添加右键菜单
添加CListCtrl的右键响应事件(NM_RCLICK)void CCardInfoDlg::OnNMRClickListCard(NMHDR *pNMHDR, LRESULT *pResult){ LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); //防止在空白区点击弹出菜单 if (m_LstCtrl.Get
2012-09-23 11:22:58
9988
1
原创 CListCtrl选中行保持高亮
在CListCtrl中添加NM_CUSTOMDRAW消息的事件响应:void CCardInfoDlg::OnNMCustomdrawListCard(NMHDR *pNMHDR, LRESULT *pResult){ NMLVCUSTOMDRAW* pLVCD = reinterpret_cast( pNMHDR ); *pResult = CDRF_DODEFAULT; // Fi
2012-09-23 10:45:22
3023
原创 SQLite的CASE语句
SELECT CASE RegType WHEN 1 THEN '月卡' WHEN 0 THEN '周卡' WHEN 2 THEN '季度卡' WHEN 3 THEN '年卡' ELSE '未知卡类型'
2012-09-18 15:20:40
17041
原创 SQLite的日期操作
SQLite的日期操作:SQLite支持五中日期时间函数, 如下:1. date(timestring, modifier, modifier, ...) 2. time(timestring, modifier, modifier, ...) 3. datetime(timestring, modifier, modifier, ...) 4. julianday(timestrin
2012-09-18 15:12:00
4265
原创 SQLite点滴
--创建表: SL_Register_InfoCREATE TABLE [SL_Register_Info] ( [RegID] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, [UserID] INT NOT NULL CONSTRAINT [ForeingKey_UserID] REFERENCES [SL_User_Info]([UserI
2012-09-18 14:24:15
704
转载 C++原生事件
// evh_native.cpp#include #include [event_source(native)]class CSource {public: __event void MyEvent(int nValue);}; [event_receiver(native)]class CReceiver {public: void MyHandler1(i
2012-09-16 12:40:16
718
原创 C, C++零碎记录
1、 wsprintf宏, 格式化字符串, 格式: wsprintf(sBuff, _T("%s,%d"), _T("字符串"), 10); sBuf结果 = "字符串,10";2、读INI文件 char chIP[250]; //返回值 GetPrivateProfileString("节点名", "Key", "默认值", chIP, 250
2012-09-12 09:45:34
623
原创 TinyXML起步
在使用Tiny的注意事项:1. 添加所有的头文件和源文件至你的工程2.在项目属性中选择C/C++->预编译头->预编译头 选择为 不使用预编译头
2012-09-05 22:29:50
526
原创 C++函数嵌套定义
//函数的嵌套定义int AddThreeInt(int iFirst, int iSecond, int iThree){ struct AddTwoInt { int operator()(int iOne, int iTwo) { return iOne + iTwo; } } AddTwoInt; return AddTwoInt(iFirst, iSecon
2012-09-03 12:27:34
5611
原创 C++两种方式创建窗口
第一种: CreateWindow#include LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){ static TCHAR szA
2012-09-03 11:30:22
5971
转载 C++调用HTTP实现方式
Http访问有两种方式,GET和POST,就编程来说GET方式相对简单点,它不用向服务器提交数据,程序中使用POST方式,提交数据并从服务器获取返回值。为实现Http访问,微软提供了二套API:WinINet, WinHTTP。WinHTTP比WinINet更加安全和健壮,可以这么认为WinHTTP是WinINet的升级版本。程序中,通过一个宏的设置来决定是使用WinHttp还是Win
2012-09-03 09:20:32
20311
原创 MFC退出窗口提示
void CControlsTestDlg::OnClose(){ // TODO: 在此添加消息处理程序代码和/或调用默认值 if(IDNO == ::MessageBox(this->m_hWnd, _T("确定退出系统吗?"), _T("提示"), MB_ICONQUESTION | MB_YESNO)) { return; } CDialogEx::OnClose();}
2012-09-02 19:50:43
3749
原创 一段登录代码
//用户名框ID#define IDC_EDIT_ACCOUNT 0x3F6//密码框ID#define IDC_EDIT_PW 0x3f7//LOGIN按钮ID#define IDC_BUTTON_LOGIN 0x3f5//START按钮ID#define IDC_BUTTON_START 0x3e8//服务选择列表框ID#define IDC_LISTBOX_SRV 0
2012-09-02 16:38:39
818
原创 MFC打开和保存对话框
#include "stdafx.h"//打开文件对话框CString OpenDialg(CWnd* pParentWnd){ CFileDialog DlgOpenFile(TRUE, _T("*.*"), NULL, OFN_EXPLORER, _T("文本文件|*.txt|All File|*.*||"), pParentWnd); int iResult = DlgOpenF
2012-09-01 10:56:58
677
原创 VC++获取程序路径
CString sPath; GetModuleFileName(NULL, sPath.GetBuffer(MAX_PATH), MAX_PATH); //GetModuleFileName获取的是完整路径+文件名 sPath.ReleaseBuffer(); //下边只取文件的完整路径(去掉文件名) int nPos; nPos = sPath.ReverseFind(
2012-08-31 17:16:06
737
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人