Archive for the ‘Y&D Studio产品’ Category

TRACE TRACEA Macro

void _TRACE(TCHAR *pszFormat, ...)
{
 if(lstrlen(pszFormat) > 512)
 {
  return;
 }

 TCHAR buffer[1024] = {0};
 va_list argptr;
 va_start(argptr, pszFormat);
 wvsprintf(buffer, pszFormat, argptr);
 va_end(argptr);
 OutputDebugString(buffer);
}

void _TRACEA(char *pszFormat, ...)
{
 if(strlen(pszFormat) > 512)
 {
  return;
 }

 char buffer[1024] = {0};
 va_list argptr;
 va_start(argptr, pszFormat);
 vsprintf(buffer, pszFormat, argptr);
 va_end(argptr);
 OutputDebugStringA(buffer);
}

#ifdef _DEBUG
#define TRACE _TRACE
#define TRACEA _TRACEA
#else
#define TRACE
#define TRACEA
#endif

之前在项目中自己封装用的。

调试输出信息在output窗口
vc 调试信息输出

GetFileVersion

LIB中添加一个获取PE文件的文件版本的函数

GetFileVersion

PPS解析器

PPS缓存解析器(PPSCachePaser)是Y&D Studio开发的一款解析PPS缓存文件(ppsds.pgf),并可以从中提取已下载完毕的视频资源的小软件。

由Y&D Studio Higher于2011-04完成Ver1.0开发,采用Yarpee 2010-10 PPSCachePaser核心。

本地绿色下载:PPSCacheParser

Ansi2Unicode Unicode2Ansi

//
// Function:
//  将Ansi字符串转换为Unicode字符串
//
PCWSTR Ansi2Unicode(PCSTR pMultiByteStr)
{
 int nLenOfWideCharStr = MultiByteToWideChar(CP_ACP, 0, pMultiByteStr, -1, NULL, 0);
 PWSTR pWideCharStr = (PWSTR)malloc(nLenOfWideCharStr * sizeof(wchar_t));
 if(pWideCharStr)
 {
  MultiByteToWideChar(CP_ACP, 0, pMultiByteStr, -1, pWideCharStr, nLenOfWideCharStr);
 }
 return pWideCharStr;
}

// 调用方法
   const char *pMultiByteStr = "中文";
   const wchar_t *pWideCharStr = Ansi2Unicode(pMultiByteStr);
   if(pWideCharStr)
   {
    MessageBox(hWnd, pWideCharStr, TEXT("Ansi2Unicode"), MB_OK);
    free((void *)pWideCharStr);
    pWideCharStr = NULL;
   }

Read more

GetMessageText

//
// Function:
//  根据dwMessageId从系统消息表中获取对应的消息文本保存在hlocal中
//
BOOL GetMessageText(HLOCAL& hlocal, DWORD dwMessageId)
{
 return FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_ALLOCATE_BUFFER,// 标识组合位
  NULL,// 模块
  dwMessageId,// 消息码
  MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),// 语言标识
  (PTSTR)&hlocal,// 缓冲区
  0,// 字符数
  NULL);// 参数列表
}

// 调用方法
   HLOCAL hlocal = NULL;
   if(GetMessageText(hlocal, 2))
   {
    MessageBox(hWnd, (PCTSTR)LocalLock(hlocal), TEXT("MessageText"), MB_OK);
    LocalFree(hlocal);
   }

无觅相关文章插件,快速提升流量