 |
从文件路径中获取文件名等信息
|
|
| |
| 从文件路径中(如:E:\projects\web\vcer\app\js\pageViewer.js)获取文件名等信息(如:pageViewer.js)获取文件的名字,Ext表明是否包含后缀
CString CUtil::GetFileTitleFromFileName(CString FileName, BOOL Ext)
{
int Where;
Where = FileName.ReverseFind('\\');
if (Where == -1)
Where = FileName.ReverseFind('/');
CString FileTitle = FileName.Right(FileName.GetLength() - 1 - Where);
if (!Ext)
{
int Which = FileTitle.ReverseFind('.');
if (Which != -1)
FileTitle = FileTitle.Left(Which);
}
return FileTitle;
}
获取文件所在的路径:
CString CUtil::GetFilePathFromFileName(CString FileName)
{
int Where;
Where = FileName.Re ...
|
|
| 作者:不祥 bluejoe张贴于2006-12-20 15:46:49.0,共阅读3524次,回复1次 |
|
|
 |
虚拟键盘代码Virtual-Key Codes
|
|
| |
| The following table shows the symbolic constant names, hexadecimal values, and mouse or keyboard equivalents for the virtual-key codes used by the system. The codes are listed in numeric order. Virtual-Key Codes -------------------------------------------------------------------------------- The following table shows the symbolic constant names, hexadecimal values, and mouse or keyboard equivalents for the virtual-key codes used by the system. The codes are listed in numeric order. Constants VK_LBUTTON (01) Left mouse button VK_RBUTTON (02) Right mouse button VK_CANCEL (03) Control-break proce ...
|
|
| 作者:不祥 bluejoe张贴于2007-01-10 13:19:17.0,共阅读2737次,回复0次 |
|
|
 |
用API 作简繁体转换
|
|
| |
| 1. 输入Big5字符,返回Gb简体字符
//---------------------------------------------------------------------------
//函数输入Big5字符,返回Gb简体字符
//---------------------------------------------------------------------------
AnsiString __fastcall Big2Gb(AnsiString sBig)
{
char* pszBig5=NULL; //Big5编码的字符
wchar_t* wszUnicode=NULL; //Unicode编码的字符
char* pszGbt=NULL; //Gb编码的繁体字符
char* pszGbs=NULL; //Gb编码的简体字符
AnsiString sGb; //返回的字符串
int iLen=0; //需要转换的字符数
pszBig5=sBig.c_str(); //读入需要转换的字符参数
//计算转换的字符数
iLen=MultiByteToWideChar (950 ...
|
|
| 作者:不祥 bluejoe张贴于2006-11-10 16:40:26.0,共阅读2583次,回复1次 |
|
|
 |
求救
|
|
| |
| fatal error C1083: Cannot open precompiled header file: 'Debug/zhpp.pch': No such file or directory
我在编译的时候总是通不过,错误指向"#include "stdafx.h"
请问哪位高手能告诉我为什么总是编译不了的呢?
|
|
| 作者:不祥 zhpeng1983张贴于2006-10-26 20:52:57.0,共阅读1696次,回复1次 |
|
|
 |
求矩阵行列式算法
|
|
| |
| 我写了个求矩阵行列式的函数,如下:
Determinant(double &det)
{
//calculate the determinant of this matrix
if(m_nCols != m_nRows) Error(CString("it is'nt a square matrix"));//can called with this
if(m_nCols == 1) {det = m_pData[0]; return;}
else if(m_nCols == 2) {det=(m_pData[0]*m_pData[3] - m_pData[1]*m_pData[2]);return;}
int sign = 1;
det = 0.0;
int i;
double temp;
Matrix<T> subMat;
subMat.m_nCols = m_nCols-1;
subMat.m_nRows = m_nRows-1;
subMat.m_pData = new T[subMat.m_nCols*subMat.m_nRows];
for(i=0; i<m_nCols-2; i++)
...
|
|
| 作者:不祥 kalven张贴于2004-04-22 16:11:41.0,共阅读5420次,回复6次 |
|
|
 |
检测PE文件加壳信息用的特征码!含DEMO和源码
|
|
| |
| 我们只要知道PE的入口点地址.就可以进行匹配,我以经用它做了一个像stud_PE那样能检测PE文件外壳信息的程序,能有效检测170多种
相关DEMO和源代码[48,493字节]
//定义特征码结构体
/////////////////////////////////////////////////////////////////////////////
typedef struct _Feature
{
public:
LPCTSTR Pos; //相对于入口点的偏移
LPCTSTR Fea; //特征码
LPCTSTR Info; //壳信息
bool IsOrdered; //是否是顺序的.
}Feature,*PFeature;
Feature g_ShellInfoTab[] =
{
{"01020304050607090B0C","8B4424085683E8744875","Microsoft Visual C++ Private Version 2",0},
{"010203040508","8B4424088374","Microsoft Visual C++ Private Version 1",0},
{"0102030408090D" ...
|
|
| 作者:不祥 windy张贴于2004-08-05 10:32:58.0,共阅读10822次,回复5次 |
|
|
 |
Faq:请教链接错误2005
|
|
| |
| 问题:
在头文件中定义了几个变量, 如int bOrientationStarting;
int bObstacleStarting;
int bImageProcStarting;当其他多个文件需要包含了该h文件时出现以下链接错误:
MainFrm.obj : error LNK2005: "int bObstacleStarting" (?bObstacleStarting@@3HA) already defined in AudioManView.obj
MainFrm.obj : error LNK2005: "int bOrientationStarting" (?bOrientationStarting@@3HA) already defined in AudioManView.obj
MainFrm.obj : error LNK2005: "int bImageProcStarting" (?bImageProcStarting@@3HA) already defined in AudioManView.obj
......
这是犯了 ...
|
|
| 作者:不祥 zhnajiao张贴于2004-05-28 09:13:10.0,共阅读2998次,回复1次 |
|
|
 |
获取本地IP地址
|
|
| |
| CString CUtil::GetLocalIp()
{
struct hostent * phost;
char ip[20];
char hostname[50];
gethostname(hostname, 50);
phost = gethostbyname(hostname);
char * * names;
names = phost->h_aliases;
char * * iplist;
iplist = phost->h_addr_list;
while (* iplist)
{
strcpy(ip, inet_ntoa(* (struct in_addr *) * iplist));
iplist++;
}
CString LocalIp = ip;
return LocalIp;
}
|
|
| 作者:不祥 bluejoe张贴于2004-03-02 16:40:13.0,共阅读6304次,回复3次 |
|
|
 |
发个完整的数字手表的代码,大家给点意见。
|
|
| |
| 给点意见。
/*----------------------------------------------------------------------------------------
CurosrBlock.c
CursorBlock.c Display how to cursor
(C)HuZengQiang 2004
----------------------------------------------------------------------------------------*/
#include <windows.h>
/*-------------------------------------------------------------------------------------
constant number
------------------------------------------------------------------------------------*/
#define ID_TIMER 1
...
|
|
| 作者:不祥 imperial张贴于2004-08-31 16:23:24.0,共阅读2826次,回复2次 |
|
|
 |
USB摄像头编程
|
|
| |
| 注意包含头文件qedit.h,dshow.h
几个函数如下,其中有一些全局变量,程序写的充忙,也就不整理了。参考了一些资料。
BOOL initVideo(void)
{
AM_MEDIA_TYPE amt;
CoInitialize(NULL); // COM的初期化
// ---- 输入计算的准备 ----
// 搜索输入装置
IBaseFilter *pbf = NULL;
IMoniker * pMoniker = NULL;
ULONG cFetched;
// 制作装置的各个部分
CoCreateInstance( CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC,
IID_ICreateDevEnum, (void ** ) &pDevEnum);
// 制作视频输入装置的各个部分
IEnumMoniker * pClassEnum = NULL;
pDevEnum -> CreateClassEnumer ...
|
|
| 作者:不祥 afra张贴于2004-05-29 17:34:02.0,共阅读8724次,回复3次 |
|
|
 |
RSA加密演示程序
|
|
| |
| 只是一个简单的演示程序,没有用很大的质数,就用了7和17. 呵呵
bool Encipher表明改函数是用了加密还是解密.
CString RSA(CString ASource, bool Encipher)
{
CString SourceText;
int P,Q,E,D,N,Code;
int iLength ,i,j,iTemp;
P=7;
Q=17;
N=P * Q; // 119 (P-1)*(Q-1)=96
E=11; // D*E=1 mod (P-1)*(Q-1) 即 D*E=1 mod 96
D=35; // 11 * 35 =385 ; 385 mod 96 =1
// 公开密钥 < E,N > = < 11,119 >
// 秘密密钥 < D,N > = < 35,119 >
SourceText=ASource;
iLength=SourceText.GetLength();
if(Encipher) Code=E;
else Code=D;
for(i=0;i<iLength;i++ )
{
iTemp=SourceText[i];
for(j=0;j<Code-1;j++)
{
...
|
|
| 作者:不祥 ISeekYou张贴于2004-05-19 19:10:46.0,共阅读4215次,回复2次 |
|
|
 |
根据进程ID杀死进程
|
|
| |
| HANDLE h=OpenProcess(PROCESS_ALL_ACCESS,TRUE, nProcessID);
if(h!=NULL)
{
TerminateProcess(h,0);
}
可以结合帖子 /showTip.jsp?tipid=3168 做出类似任务管理器样的东东....
|
|
| 作者:不祥 jerry张贴于2004-09-04 17:55:48.0,共阅读2555次,回复0次 |
|
|
 |
遍历系统中的进程
|
|
| |
| HANDLE hProcessSnap = NULL;
PROCESSENTRY32 pe32;
//获得当前进程快照
hProcessSnap = CreateToolhelp32Snapshot (TH32CS_SNAPPROCESS, 0);
if( hProcessSnap == INVALID_HANDLE_VALUE )
{
return TRUE;
}
pe32.dwSize = sizeof(PROCESSENTRY32);
//列据进程名称
if( Process32First (hProcessSnap,&pe32) )
{
do
{
//这里获得可以获得进程的相关信息, 具体请查MSDN的 PROCESSENTY32结构
MessageBox(NULL, pe32.szExeFile, "遍历进程", MB_OK);
}while(Process32Next (hProcessSnap,&pe32));
}
else
{
...
|
|
| 作者:不祥 jerry张贴于2004-09-04 17:44:44.0,共阅读2940次,回复0次 |
|
|
 |
关于遍历目录的问题求救!~
|
|
| |
| 我是个初学者,请给我讲解的详细一些。谢谢了。 我从网上找了个 “遍历目录查找文件”的例子,照着做了一个,编译后在没有pagefile.sys的目录下查找文件运行很正常,一旦在有pagefile.sys的目录下(如:c:\)查找文件,就出现窗口闪一下就消失了。
我是个初学者,请给我讲解的详细一些。谢谢了。
一下是代码:
void CSearchDlg::OnButtonSearch()
{
// TODO: Add your control notification handler code here
char szFilename[80];
//字符串szFilename表示要查找的文件名
strcpy(szFilename,"RamCleaner.exe");
_chdir("d:\\disktop_bak\\"); //进入要查找的路径(也可以是某一具体的目录)
//查找文件,如果查到则显示文件的路径全名
Search_Directory(szFilename);
//CsearchDlg类的一个成员函数
MessageBox("查找文件完毕.");
//显示查找完毕的信息
}
void CSearchDlg::Search_Directory(char *szFilename)
{
lo ...
|
|
| 作者:不祥 ymchinabye张贴于2004-09-02 14:59:47.0,共阅读2073次,回复1次 |
|
|
 |
判断某个URL是否有效
|
|
| |
| bool CUtil::IsReachableURL(CString sURL)
{
CInternetSession Session;
CHttpFile * pFile;
try
{
pFile = (CHttpFile *) Session.OpenURL(sURL);
}
catch (CException * e)
{
e->Delete();
pFile = NULL;
}
return (pFile != NULL);
}
|
|
| 作者:不祥 bluejoe张贴于2004-03-10 14:56:27.0,共阅读1640次,回复2次 |
|
|
 |
如何在对话框中加入状态栏[2]加强你的状态栏
|
|
| |
| 1.修改状态栏背景色
OnInitDialog 里面加 m_bar.GetStatusBarCtrl().SetBkColor(RGB(180,180,180));
2.时间显示
OnInitDialog 里面加 SetTimer(100,1000,NULL);
WM_TIMER 里面
if(nIDEvent==100)
{
CTime t1;
t1=CTime::GetCurrentTime();
m_bar.SetPaneText(1,t1.Format("%H:%M:%S"));
}
CDialog::OnTimer(nIDEvent);
3.显示鼠标坐标
void CDlgStatusBarDlg::OnMouseMove(UINT nFlags, CPoint point)
{
CString s;
s.Format("X=%d Y=%d",point.x,point.y);
m_bar.SetPaneText(0,s);
CDialog::OnMouseMove(nFlags, point);
}
要看前面一片文章哦
|
|
| 作者:不祥 Bccv张贴于2004-04-20 11:54:48.0,共阅读2426次,回复1次 |
|
|
 |
CListCtrl的item checked 或unchecked时的消息响应
|
|
| |
| void CListDlg::OnItemchangedlist(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
*pResult = 0;
if (pNMListView->uOldState == 0 && pNMListView->uNewState == 0)
return; // No change
BOOL bPrevState = (BOOL)(((pNMListView->uOldState &
LVIS_STATEIMAGEMASK)>>12)-1); // Old check box state
if (bPrevState < 0) // On startup there's no previous state
bPrevState = 0; // so assign as false (unchecked)
// New check box state
BOOL bChecked=(BOOL)(((pNMListView->uNewState & LVIS_STATEIMAGEMASK)>>12)-1);
if (bChecked < 0) // On n ...
|
|
| 作者:不祥 jerry张贴于2004-05-27 16:41:30.0,共阅读2475次,回复0次 |
|
|
 |
给IE窗口的Input框右键菜单加入新的功能
|
|
| |
| 部分内容需要参考上面的,为Edit框右键菜单添加新项
和设置Edit窗口一样,也需要设置一个窗口过程钩子来截获WM_CONTEXTMENU消息,不过设置的窗口过程有所不同。新的窗口过程如下:
LRESULT CALLBACK IEWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
HOOKSHARED *hkShared;
HANDLE hMapObject;
WNDPROC oldWndProc = (WNDPROC)::GetProp(hWnd, ADPISA_oldProc);
hkShared = HooKGetSharedMem(&hMapObject);
if( uMsg == hkShared->uIEDoPaste )
{
POINT pt;
pt.y = HIWORD( lParam );
pt.x = LOWORD( lParam );
IEDoPaste(hWnd,pt);
}
HooKReleaseSharedMem(hkShared,hMapObject);
switch(uMsg)
{
case WM_CONTEXTMENU:
{
// 在右键弹出时,判断是否为Input框,主要函数GetD ...
|
|
| 作者:不祥 ISeekYou张贴于2004-05-21 21:46:37.0,共阅读2138次,回复0次 |
|
|
 |
给Edit编辑窗口的右键菜单加入新的功能
|
|
| |
| 代码内容来自于曾经做过的一个个人电脑安全安全处理助理软件,其中有项功能,就是给正在编辑的窗口内容加密,加密的功能放在右键菜单中调用,呵呵。里面有些用到的结构函数并没有列出来,代码只能大致给出思路首先需要安装一个窗口过程钩子
g_hPROCHook=SetWindowsHookEx(WH_CALLWNDPROC, GetMsgProc, g_hinstDll, 0);
窗口过程主要是在截获到 WM_CONTEXTMENU 消息时,判断当前窗口是否为Edit框, 若是的话,保存原窗口过程,设置新的窗口过程为NormalWndProc。
LRESULT WINAPI GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
{
CWPSTRUCT* pStruct = (CWPSTRUCT*)lParam;
HOOKSHARED *hkShared;
HHOOK hProcHook;
HANDLE hMapObject;
hkShared=HooKGetSharedMem(&hMapObject);
hProcHook=hkShared->g_hPROCHook;
if (nCode == HC_ACTION)
{
if (pStruct->message != WM_CONT ...
|
|
| 作者:不祥 ISeekYou张贴于2004-05-21 21:24:50.0,共阅读2059次,回复0次 |
|
|
 |
云朵生成算法
|
|
| |
| 函数用来生成黑白色的云朵.该函数生成该图的一个象素的灰度值
参数说明:
int x, int y: 云朵图对应的象素位置
int x0,int y0,float FX,float FY,float Ci,float Cj,float T0,float K:用来调整云朵亮度、形状、位置等的参数。初始化一般如下
Ci = 6.0f;
FX = 1.0f / 120;
FY = 1.0f / 240;
fK = 1.0f;
T0 = 0.0f;
Cj = 6.0f;
x0 = 30;
y0 = 10;
float CGenerateCloudDoc::GenerateCloud(int x, int y,int x0,int y0,float FX,float FY,float Ci,float Cj,float T0,float K)
{
float LX = 0,LY = 0,T = 0,T1 = 0,T2 = 0,FX1 = 0,FY1 = 0;
for(int i=1; i<5; i++)
{
if(i==1)
{
FX1 = FX;
FY1 = FY;
}
LX = sqrt(i) * FX1;
...
|
|
| 作者:不祥 ISeekYou张贴于2004-05-21 20:41:13.0,共阅读1824次,回复0次 |
|
|