再一次挨踢散分庆祝

stivenjia 2008-10-14 10:37:46
来大连这个城市快7年了,自认为是个执着的人对感情能一如既往但每次开始和结束只有那么短短几个小时。
伤心了,也许这个世界上属于我的另一半在火星抑或根本不存在谁知道呢?同一条路上我走了两遍犯了两次错误,我连一个智商低于70的阿甘都不如,成功或失败一切的一切皆以尘埃落定,往事随风散不去丝丝情愁,时间蹉跎带走生命点滴,夜半细雨落人间,不知君泪为谁落。
但问君欲何处去,仰面长叹心已固,干涸之心早已死,何故击缶惹涟漪。
...全文
224 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
caixingxin 2008-10-16
  • 打赏
  • 举报
回复
面包牛奶会有滴。。
devoc 2008-10-16
  • 打赏
  • 举报
回复
继续前进,别样精彩尽在其中
walkbywind 2008-10-16
  • 打赏
  • 举报
回复
我在大连待过5年。。。
walkbywind 2008-10-16
  • 打赏
  • 举报
回复
推荐你看看李敖的书
backway 2008-10-16
  • 打赏
  • 举报
回复
UP
好运
fuzigege 2008-10-16
  • 打赏
  • 举报
回复
继续努力
见习学术士 2008-10-16
  • 打赏
  • 举报
回复
就喜欢LZ的分
mjjzg 2008-10-16
  • 打赏
  • 举报
回复
路过JF
jakky520 2008-10-15
  • 打赏
  • 举报
回复
一个人活的也同样精彩 ,楼主加油
Waiting4you 2008-10-15
  • 打赏
  • 举报
回复
楼主,你的代码是干啥子的?
wangdeqie 2008-10-15
  • 打赏
  • 举报
回复
祝福,帮顶
FireBirdCN 2008-10-15
  • 打赏
  • 举报
回复
楼主莫急
面包会有滴
老婆会有滴~~
feilinhe 2008-10-15
  • 打赏
  • 举报
回复
请LZ解释一下代码是做什么的啊
zzz822163 2008-10-14
  • 打赏
  • 举报
回复
jf
孤客天涯 2008-10-14
  • 打赏
  • 举报
回复
不经历风雨,怎么见彩虹?
VsirSoft 2008-10-14
  • 打赏
  • 举报
回复
滋润
namhyuk 2008-10-14
  • 打赏
  • 举报
回复
stivenjia 2008-10-14
  • 打赏
  • 举报
回复
情断了,心死了,往日激情均已磨灭。
stivenjia 2008-10-14
  • 打赏
  • 举报
回复


#if !defined(JADE_NEW_RETURN)
#inlcude "MiscFunction.h"
#endif
#include "JadeScManager.h"
#pragma comment(lib,"Advapi32")

JadeScManager::JadeScManager():m_hMag(NULL),m_lpBase(NULL),m_dwError(0),m_scLock(NULL)
{
m_hMag = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
if(m_hMag == NULL)
m_dwError = GetLastError();
}

JadeScManager::JadeScManager(LPCTSTR lpMachineName,LPCTSTR lpDatabaseName)
:m_hMag(NULL),m_lpBase(NULL),m_dwError(0),m_scLock(NULL)
{
m_hMag = OpenSCManager(lpMachineName,lpMachineName,SC_MANAGER_ALL_ACCESS);
if(m_hMag == NULL)
m_dwError = GetLastError();
}

JadeScManager::~JadeScManager()
{
if(m_hMag != NULL)
CloseServiceHandle(m_hMag);
if(m_lpBase != NULL)
{
if(HeapFree(GetProcessHeap(),0,(void*)m_lpBase))
m_lpBase = NULL;
}
}

DWORD JadeScManager::QueryWin32Service(DWORD dwSvrType,DWORD dwState,DWORD &dwBytesNeeded,
DWORD &dwCount,LPENUM_SERVICE_STATUS *lpBase)
{
if(m_hMag == NULL)
return m_dwError;
if(m_lpBase != NULL)
{
*lpBase = m_lpBase;
return JADE_HEAP_USED;
}
DWORD dwResumeHandle = 0,dwReturned = 0;
HANDLE hHeap = GetProcessHeap();
__try
{
m_lpBase = (LPENUM_SERVICE_STATUS)HeapAlloc(hHeap,HEAP_ZERO_MEMORY|HEAP_GENERATE_EXCEPTIONS
,sizeof(ENUM_SERVICE_STATUS));
m_dwError = EnumServicesStatus(m_hMag,dwSvrType,dwState,m_lpBase,sizeof(ENUM_SERVICE_STATUS),
&dwBytesNeeded,&dwReturned,&dwResumeHandle);
//绝大部都应该是0
if(m_dwError == 0)
{
m_dwError= GetLastError();
if(m_dwError == 234)
{
//表示分配的空间过短
m_lpBase = (LPENUM_SERVICE_STATUS)HeapReAlloc(hHeap,HEAP_ZERO_MEMORY|HEAP_GENERATE_EXCEPTIONS,
(void*)m_lpBase,dwBytesNeeded);
}
else
{
*lpBase = NULL;
dwBytesNeeded = 0;
dwCount = 0;
if(HeapFree(hHeap,0,m_lpBase))
m_lpBase = NULL;
return m_dwError;
}
}
m_dwError = EnumServicesStatus(m_hMag,dwSvrType,dwState,m_lpBase,dwBytesNeeded,
&dwBytesNeeded,&dwCount,&dwResumeHandle);
if(m_dwError == 0)
{
*lpBase = NULL;
dwBytesNeeded = 0;
dwCount = 0;
if(HeapFree(hHeap,0,m_lpBase))
m_lpBase = NULL;
return (m_dwError = GetLastError()); //操作有误
}
//
*lpBase = m_lpBase;
}
__except(ExceptCode(GetExceptionCode(),GetExceptionInformation()))
{
lpBase = NULL;
dwBytesNeeded = 0;
dwCount = 0;
if(m_lpBase != NULL)
{
if(HeapFree(hHeap,0,m_lpBase))
m_lpBase = NULL;
}
return GetExceptionCode();
}
return 0;
}

DWORD JadeScManager::ReleaseQuery(LPENUM_SERVICE_STATUS lpBase)
{
__try
{
if(m_lpBase != NULL)
{
if(HeapFree(GetProcessHeap(),0,(void*)m_lpBase))
{
m_lpBase = NULL;
lpBase = NULL;
}
else
return GetLastError();
}
}
__except(ExceptCode(GetExceptionCode(),GetExceptionInformation()))
{

return GetExceptionCode();
}
return 0;
}
stivenjia 2008-10-14
  • 打赏
  • 举报
回复

#if _WIN32_WINNT < 0x0500
inline DWORD JadeScManager::JadeService::QueryServiceStatus(LPSERVICE_STATUS lpServiceStatus)
{
return ( 0 == ::QueryServiceStatus(m_hSvr,lpServiceStatus)?GetLastError():0);
}
#endif


inline DWORD JadeScManager::GetServiceKeyName(JadeService &lpSvr,LPCTSTR lpDispName
,CString &szKeyName)
{
DWORD dwBufLen = 0,dwRetVal = 0;
LPSTR lpKey = NULL;
::GetServiceKeyName(lpSvr.m_hSvr,lpDispName,NULL,&dwBufLen);
if( ERROR_INSUFFICIENT_BUFFER != (dwRetVal = GetLastError()))
return dwRetVal;
lpKey = (LPSTR)malloc(dwBufLen);
if(!lpKey) return -1;
ZeroMemory(lpKey,dwBufLen);
if(!::GetServiceKeyName(lpSvr.m_hSvr,lpDispName,lpKey,&dwBufLen))
{
free(lpKey);
return GetLastError();
}
szKeyName = lpKey;
free(lpKey);
return 0;
}

inline DWORD JadeScManager::StartService(JadeService &lpSvr,DWORD dwNumServiceArgs
,LPCTSTR* lpServiceArgVectors)
{
BOOL bSuc = FALSE;
bSuc = ::StartService(lpSvr.m_hSvr,dwNumServiceArgs,lpServiceArgVectors);
return bSuc == TRUE?0:GetLastError();
}

inline DWORD JadeScManager::Lock(void)
{
if(m_hMag == NULL)
return m_dwError;
m_scLock = LockServiceDatabase(m_hMag);
return m_scLock == NULL?GetLastError():0;
}

inline DWORD JadeScManager::Unlock(void)
{
return 0 == UnlockServiceDatabase(m_scLock)?GetLastError():0;
}

inline DWORD JadeScManager::CreateService(JadeService &lpSvr,LPCTSTR lpSvrName,LPCTSTR lpDspName,
DWORD dwDsrAccess,DWORD dwSvrType,DWORD dwStartType,DWORD dwErrorControl,
LPCTSTR lpBinaryPathName,LPCTSTR lpLoadOrderGroup,LPDWORD lpdwTagId,
LPCTSTR lpDependencies,LPCTSTR lpSvrStartName,LPCTSTR lpPassword)
{
lpSvr.m_hSvr = ::CreateService(m_hMag,lpSvrName,lpDspName,dwDsrAccess,dwSvrType,dwStartType,dwErrorControl,
lpBinaryPathName,lpLoadOrderGroup,lpdwTagId,lpDependencies,lpSvrStartName,
lpPassword);
return lpSvr.m_hSvr == NULL?GetLastError():0;
}

inline DWORD JadeScManager::DeleteSvr(JadeService &lpSvr)
{
return 0 == DeleteService(lpSvr.m_hSvr)?GetLastError():0;
}
加载更多回复(12)

1,649

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧