?? calcborn.h
字號:
/////////////////////////////////////////////////////////////////////////////
// CalcBorn.h : main header file for the CALCBORN application
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_CALCBORN_H__5148B4FC_E7CC_409D_A071_2D0702C92C0A__INCLUDED_)
#define AFX_CALCBORN_H__5148B4FC_E7CC_409D_A071_2D0702C92C0A__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
#include <ShlObj.h> // 目錄瀏覽庫
#include <math.h> // 數學函數庫
#include <stdio.h> // 標準IO操作
#include <stdlib.h> // 標準函數庫
#include <malloc.h> // 內存分配庫
#include <string.h> // 字符串操作
/////////////////////////////////////////////////////////////////////////////
/* 申請和釋放指定大小sZ和類型tP的空間,及重新分配 */
#define TcNewMem(sZ, tP) (tP *)malloc((sZ) * sizeof(tP))
#define TcDelMem(pTr) if(pTr) free(pTr); pTr = NULL
#define TcReaMem(pTr, sZ, tP) pTr = (tP *)realloc(pTr, (sZ) * sizeof(tP))
#define TcClrMem(pTr, sZ, tP) memset(pTr, 0, (sZ) * sizeof(tP))
static const char *MyZnnWeek[] = {"星期日", "星期一", "星期二",
"星期三", "星期四", "星期五", "星期六"}; // 我寧寧星期
static const char *MyBigNum[] = {"0", "一", "二", "三",
"四", "五", "六", "七", "八", "九", "十"}; // 我大寫數字
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
CString m_sHelps;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
virtual BOOL OnInitDialog();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
// CCalcBornApp:
// See CalcBorn.cpp for the implementation of this class
//
class CCalcBornApp : public CWinApp
{
public:
CCalcBornApp();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCalcBornApp)
public:
virtual BOOL InitInstance();
//}}AFX_VIRTUAL
// Implementation
//{{AFX_MSG(CCalcBornApp)
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
extern CCalcBornApp theApp;
#define MsgInt(nID, nVal) SetDlgItemInt(nID, nVal)
#define MsgTxt(nID, chStr) SetDlgItemText(nID, chStr)
/////////////////////////////////////////////////////////////////////////////
// 天誠盛業指紋算法工程常用小算法工具集合 sck007 2006.08.16 Updated //
/////////////////////////////////////////////////////////////////////////////
#include "CList.cpp" /* 雙向鏈表類 */
/*=========================================================================*/
/* 自定義使用文件操作(打開/保存)對話框,默認BMP過濾 */
BOOL ShowFileDialog(HWND hWnd, BOOL bOpen, char *chFile,
LPCTSTR chFilter = NULL);
/* 顯示選擇目錄的對話框,可初始化路徑及標題,外部接口 */
BOOL ShowFolderDialog(HWND hWnd, char *chDir, LPCTSTR chHit = NULL);
/* 以"與或"的方式使數據流面目全非或完璧歸趙:寫到新串 */
VOID CryptXOR(VOID *pbyDes, CONST VOID *pbySrc,
LONG nLen, BYTE byPatt = 0xA5);
/* 獲取系統回收站的路徑,包含尾部的反斜杠'\\',入口MAX_PATH長度 */
INT GetRecyclerDirectory(CHAR chPath[]);
/* 獲取操作系統的目錄System32的具體位置 */
INT GetSystem32Directory(CHAR chPath[]);
/* 由指定的CLSID返回對應的OCX注冊的路徑 */
INT GetOcxRegPath(const CLSID *pClsID, char *chPath);
/* 獲取指定文件的時間:creation,last access,last write */
BOOL GainFileTime(LPCTSTR chFile, SYSTEMTIME *pCreate,
SYSTEMTIME *pAccess, SYSTEMTIME *pWrite);
/* 檢查給定的文件是否存在(若文件長度指針不為NULL則返回實際值) */
BOOL IsFileExist(const char chFile[], DWORD *pLength = NULL);
/* 確認指定路徑存在,尾部有無'\\'均可 */
BOOL MakeSurePath(const char chPath[]);
/* 確認給定文件所在的路徑,以'\\'之前作為目錄有效標識 */
BOOL MakeFilePath(const char chFile[]);
/* 將給定的二進制區保存成指定文件(自動確認文件路徑) */
BOOL SaveBinaryFile(LPCTSTR chFileName, const VOID *pBuffSource,
DWORD dwBuffSize);
/* 裝載指定長度數據到給定的二進制區(固定已分配內存) */
BOOL LoadBinaryFile(LPCTSTR chFileName, VOID *pBuffTarget,
DWORD &dwBuffSize);
/* 裝載指定文件到給定的二進制區(自動確認使用內存) */
BOOL LoadBinaryFileEx(LPCTSTR chFileName, VOID *&pBuffTarget,
DWORD &dwBuffSize);
/* 將內部的資源文件導出為二進制的文件 */
BOOL ExportResAsBinFile(LPCTSTR lpFile, HMODULE hModule,
DWORD dwName, LPCTSTR lpType);
/*=========================================================================*/
/* 申請動態二維數組空間模板(申請塊內存,DOS下有64K限制) */
BOOL NewByte2D(BYTE **&pImage, short nWide, short nHigh);
/* 釋放動態二維數組空間模板,并賦值為NULL(簡單數據類型) */
VOID DelByte2D(BYTE **&pImage);
/* 初始化二維動態數組空間(簡單數據類型) */
VOID IniByte2D(BYTE **pImage, short nWide, short nHigh, BYTE data);
/* 將等大小的二維圖像,由源區拷貝到目標區,可指定翻轉 */
VOID CpyByte2D(BYTE **pDes, BYTE **pSrc,
short nWide, short nHigh, int bFlip);
/*=========================================================================*/
#define MMPI 25.4000508F /* 1英寸=25.4毫米 */
#define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4) /* 4整倍數寬度 */
typedef union tagUFourByte /* 為SRAM讀寫 */
{
char chVal[4]; /* 四個字節段 */
short nVal[2]; /* 兩個字成員 */
long lVal; /* 雙字訪問段 */
BYTE byVal[4]; /* 四個字節段 */
WORD wVal[2]; /* 兩個字成員 */
DWORD dwVal; /* 雙字訪問段 */
}
UFourByte, *PUFourByte; /* 四字節聯合 */
/*=========================================================================*/
/* 將指定8位/24位圖像繪畫到指定的設備中去(4的整數倍寬,含放縮) */
VOID DrawZnnImage(CDC *pDC, BYTE *pImage, int nWide, int nHigh,
CONST LPCRECT pSrcRect = NULL, /* 源圖中某區域 */
CONST LPCRECT pDesRect = NULL, /* 設備中某區域 */
BOOL bReverse = TRUE, /* 是否翻轉顯示 */
BOOL bColor24 = FALSE); /* 是否是彩色圖 */
/* 是否為Znn格式圖像,若是則以像素為單位,返回高,及4的整數倍寬 */
BOOL IsmeZnnImage(LPCTSTR chFile, /* 輸入讀取文件 */
WORD *pwWide = NULL, WORD *pwHigh = NULL);
/* 加載Znn格式圖像,須備好目標內存,標明高,及4的整數倍寬 */
BOOL LoadZnnImage(LPCTSTR chFile, /* 輸入讀取文件 */
BYTE *pImage, /* 08位灰度圖區 */
LONG nWide, LONG nHigh, /* 圖像的寬和高 */
BYTE *pColor = NULL, /* 24位彩色圖區 */
BOOL bReverse = TRUE); /* 是否翻轉加載 */
/* 僅按8位灰度/24位彩色,保存指定高,及4的整數倍寬的圖像 */
BOOL SaveZnnImage(LPCTSTR chFile, /* 欲保存的文件 */
const BYTE *pImage, /* 圖像區首指針 */
LONG nWide, LONG nHigh, /* 圖像的寬和高 */
BOOL bReverse = TRUE, /* 是否翻轉保存 */
BOOL bColor24 = FALSE); /* 是否是彩色圖 */
/*=========================================================================*/
/* 判斷BMP文件中的數據是否是所喜歡的可處理的數據 */
BOOL IsDesiredImage(const char *chFile, /* 指定目標文件 */
short &nWide, short &nHigh); /* 返回BMP信息頭 */
/* 保存的圖像的點陣數據為BMP文件(可以存貯非4的整數倍的寬度) */
BOOL SaveArrayImage(LPCTSTR chFile, /* 欲存文件名 */
BYTE **pImage, /* 圖像區指針 */
short nWide, short nHigh, /* 圖像區寬高 */
int bIsFlip = 1, /* 是否翻轉圖 */
BITMAPINFOHEADER *pInfoHdr = NULL); /* 存_BMP信息 */
/* 加載BMP的數據區到指定的內存(可翻轉數據,可讀取非4整數倍寬度圖像) */
BOOL LoadArrayImage(LPCTSTR chFile, /* 輸入讀取文件 */
BYTE **&pImage, /* 圖像內存區域 */
short &nWide, short &nHigh, /* 對應區域寬高 */
int bIsFlip = 1, /* 是否翻轉讀取 */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -