📄 osrelate.cpp
字号:
#include "StdAfx.h"
#include "OSRelate.h"
TCHAR* hwFormatMessage ( DWORD dwErrorCode )
{
static TCHAR szError[256] = {0};
FormatMessage (
FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
dwErrorCode,
MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),
szError,
LENGTH(szError),
NULL);
return szError;
}
//
// 等待线程退出
//
BOOL WaitForThreadEnd ( HANDLE *phThread, DWORD dwWaitTime /*=5000*/ )
{
BOOL bRet = TRUE;
ASSERT ( phThread );
if ( !(*phThread) ) return TRUE;
if ( ::WaitForSingleObject ( *phThread, dwWaitTime ) == WAIT_TIMEOUT )
{
bRet = FALSE;
::TerminateThread ( *phThread, 0 );
}
::CloseHandle ( *phThread );
(*phThread) = NULL;
return bRet;
}
/********************************************************************************
* Function Type : Global
* Parameter : lpProgram - 存放当前执行程序所在的路径字符串的缓冲
* dwSize - 缓冲大小
* Return Value : 字符个数
* Description : 得到当前执行程序所在的路径
*********************************************************************************/
int GetProgramDir(LPTSTR lpProgram,DWORD dwSize)
{
ASSERT ( lpProgram );
ZeroMemory(lpProgram,dwSize);
GetModuleFileName(AfxGetInstanceHandle(),(LPTSTR)lpProgram,dwSize);
LPTSTR p = (LPTSTR)strrchr_s((LPCTSTR)lpProgram, _T('\\'));
if(!p) return 0;
p[1] = _T('\0');
int nLength = (int)(p - lpProgram)/sizeof(TCHAR);
TCHAR szAppDir[MAX_PATH] = {0};
strncpy_s ( szAppDir, AfxGetApp()->m_pszProfileName, MAX_PATH );
p = (LPTSTR)strrchr_s((LPCTSTR)szAppDir, _T('\\'));
if(!p) return nLength;
p[1] = _T('\0');
int nLength1 = (int)(p - szAppDir)/sizeof(TCHAR);
if ( stricmp_s ( szAppDir, lpProgram ) != 0 )
{
CString csMsg;
csMsg.Format ( _T("Get program directory maybe error occurred.\r\n%s\r\n%s"),
lpProgram, szAppDir );
strncpy_s ( lpProgram, szAppDir, dwSize );
AfxMessageBox ( csMsg );
return nLength1;
}
return nLength;
}
CString GetProgramDir()
{
TCHAR szProgram[MAX_PATH] = {0};
GetProgramDir ( szProgram, sizeof(szProgram) );
return szProgram;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -