 |
显示目录选择对话框
|
|
| |
| //显示选择文件夹窗口
//参数 sFolderPath:用于返回用户选择的文件夹的路径
//参数 sTitle:用于指定选择文件夹窗口的标题
//返回值 :操作结果,用户取消选择或操作失败返回FALSE,否则TRUE
BOOL CShell::BrowseForFolder(CString & sFolderPath, CString sTitle)
{
BROWSEINFO bi;
char Buffer[_MAX_PATH];
bi.hwndOwner = NULL;
bi.pidlRoot = NULL;
bi.pszDisplayName = Buffer;
bi.lpszTitle = sTitle;
bi.ulFlags = 0;
bi.lpfn = NULL;
LPITEMIDLIST pIDList = SHBrowseForFolder(& bi);
if (!pIDList)
return FALSE;
SHGetPathFromIDList(pIDList, Buffer);
sFolderPath = Buffer;
LPMALLOC lpMalloc;
if (FAILED(SHGetMalloc(& lpMalloc)))
return FALSE;
//释放内 ...
|
|
| 作者:不祥 bluejoe张贴于2004-03-10 14:50:18.0,共阅读2210次,回复0次 |
|
|
 |
PE格式效验
|
|
| |
| //打开文件
OPENFILENAME ofn;
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.hwndOwner = hWnd;
ofn.lStructSize = sizeof(ofn);
ofn.lpstrFilter = "Executable Files (*.exe, *.dll)\0*.exe;*.dll\0All Files\0*.*\0\0";
ofn.lpstrFile = buffer;
ofn.nMaxFile = MAX_FILE_LENGTH;
ofn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_LONGNAMES | OFN_EXPLORER | OFN_HIDEREADONLY ;
GetOpenFileName(&ofn);
HANDLE hFile = CreateFile(buffer,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
//获得文件的内存映射句柄
HANDLE hMapping = Cr ...
|
|
| 作者:不祥 jerry张贴于2004-03-09 22:08:03.0,共阅读1855次,回复0次 |
|
|
 |
CWin32Exception源码
|
|
| |
| class CWin32Exception : public CException
{
public:
int ReportError(UINT nType = MB_OK, UINT nMessageID = 0);
BOOL GetErrorMessage( LPTSTR lpszError, UINT nMaxError, PUINT pnHelpContext = NULL);
void ParseError();
DWORD m_nErrorCode;
CString m_sErrorName;
CString m_sErrorDescription;
CString m_sErrorLabel;
CWin32Exception(DWORD nErrorCode);
virtual ~CWin32Exception();
private:
};
CWin32Exception::CWin32Exception(DWORD nErrorCode)
{
ASSERT(nErrorCode);
m_nErrorCode = nErrorCode;
ParseError();
::Logger.Log("发生系统错误:%s", m_sErrorLabel);
}
CWin32Excep ...
|
|
| 作者:不祥 bluejoe张贴于2004-03-06 17:12:52.0,共阅读2334次,回复0次 |
|
|
 |
颜色分布
|
|
| |
| 大家颜色处理的时候,可以对照对照!
常用颜色代码:
|
|
| 作者:不祥 xler张贴于2004-03-05 23:15:53.0,共阅读2013次,回复0次 |
|
|
 |
洗牌程序
|
|
| |
| int No[54];
int Which = 0, Total = 54;
//初始化牌
for(int i = 0; i < 54; i++)
No[i] = -1;
srand((unsigned)time(NULL));
for(Which = 0; Which < 54; Which ++)
{
i = rand()*Total / RAND_MAX;
int k = 0;
int m = 0;
while(true)
{
//该牌没有设置
if(No[m] < 0)
k ++;
if(k > i)
break;
m ++;
}
No[m] = Which;
Total --;
}
|
|
| 作者:不祥 bluejoe张贴于2004-02-25 11:50:41.0,共阅读2118次,回复0次 |
|
|