xdebug helper for chrome
PHP CHROME调试插件,与Zend Studio,WAMPSERVER协同工作,方便调试
ZIP 压缩 解压缩 源码
使用ZLIB库 包装的压缩解压缩文件的源码 VS2005 工程创建
/*
*/
class ZIPWRAP_EXP CZipper
{
public:
CZipper();
virtual ~CZipper();
// simple interface
static bool ZipFile(const char* szFilePath); // saves as same name with .zip
static bool ZipFolder(const char* szFilePath, bool ignoreself = false); // saves as same name with .zip
bool AddFolderToZipFile(const char*foldername, const char* rootfolder);
bool AddFileToZipFile(const char*filename, const char*relfolder = NULL, const char* comment = NULL);
bool AddFolderOnlyPathToFile(const char* foldername, const char* comment = NULL);
bool OpenZipFile(const char* zipfilename, bool append = false);
bool CloseZipFile(const char* global_comment = NULL);
private:
void* zipfile_;/* = NULL */
};
/*
*/
#define MAX_COMMENT (255)
/* tm_unz contain date/time info */
typedef struct UZ_s
{
unsigned int tm_sec; /* seconds after the minute - [0,59] */
unsigned int tm_min; /* minutes after the hour - [0,59] */
unsigned int tm_hour; /* hours since midnight - [0,23] */
unsigned int tm_mday; /* day of the month - [1,31] */
unsigned int tm_mon; /* months since January - [0,11] */
unsigned int tm_year; /* years - [1980..2044] */
} UZ_s;
// create our own fileinfo struct to hide the underlying implementation
struct UZ_FileInfo
{
char szFileName[260 + 1];
char szComment[255 + 1];
unsigned long dwVersion;
unsigned long dwVersionNeeded;
unsigned long dwFlags;
unsigned long dwCompressionMethod;
unsigned long dwDosDate;
unsigned long dwCRC;
unsigned long dwCompressedSize;
unsigned long dwUncompressedSize;
unsigned long dwInternalAttrib;
unsigned long dwExternalAttrib;
bool bFolder;
UZ_s tmu_date;
};
class ZIPWRAP_EXP CUnZipper
{
public:
CUnZipper();
virtual ~CUnZipper();
// simple interface
static bool UnZip( const char* filename, const char* dstfolder, bool ingorepath = false, const char* password = NULL);
bool OpenUnZipFile(const char* filename);
bool CloseUnZipFile();
bool UnZipTo( const char* dstfolder, bool ingorepath = false, const char* password = NULL);
int GetFileCount();
bool GotoFirstFile();
bool GotoNextFile();
bool GotoZipFile(int index);
bool GotoZipFile(const char* zipfilename);
bool GetCurrentFileInfo(UZ_FileInfo&fileinfo;);
bool UnCurrentZipFile(const char* dstfolder, bool ingorepath = false, const char* password = NULL);
bool UnOneZipFile(const char* filename, const char* dstfolder, bool ingorepath = false, const char* password = NULL);
bool UnOneZipFile(int index, const char* dstfolder, bool ingorepath = false, const char* password = NULL);
private:
void* unzipfile_;
};
base64编码
C++ 实现计算base64码
std::string base64_encode(unsigned char const* , unsigned int len);
std::string base64_decode(std::string const& s);
Activex 截屏插件
一个简单的Activex截屏插件 可以在web上使用 VS2005 创建
程序只有一个实例运行
限制程序只有一个实例运行
bool COneInstanceApp::CheckAppIsOpen()
{
bool bTheFirstOne = true;;
::SetLastError(NO_ERROR);
::CreateMutex(NULL, false, "My OneInstance");
if (::GetLastError() == ERROR_ALREADY_EXISTS)
{
bTheFirstOne = false;
}
if ( !bTheFirstOne )
{
HWND hReporter = ::FindWindow(COneInstanceDlg::GetInstanceName(), NULL);
for (;!(hReporter = ::FindWindow(COneInstanceDlg::GetInstanceName(), NULL));)
Sleep(100);
int sw;
if (::IsZoomed(hReporter))
sw = SW_MAXIMIZE;
else if (::IsIconic(hReporter))
sw = SW_RESTORE;
else
sw = SW_SHOW;
::ShowWindow(hReporter, sw);
::SetForegroundWindow(hReporter);
return true;
}
return false;
}
MD5 C++实现 对文件计算MD5值
MD5值算法 C++实现
bool GetFileMd5(char *pMd5, const char *pFileName);
WSAEventSelect
一个关于winsocket的WSAEventselect socket异步模式的简单使用,VC++6.0工程创建,里面包含服务器端和客户端