code clip

原创 2005年06月02日 12:43:00

收集的一些常用代码以及FAQ

一.VC

  •  在SDK中使用CSring
1.首先将<windows.h>替换为<afx.h>,测试源程序为:
#include <afx.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
  CString str = "Hello, World!";
  MessageBox(NULL, str, "Hello", 0);
  return 0;
}
2.将上述程序编译,有链接错误:
nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
这是没有使用多线程库的错误。
3.在Project->Settings的C/C++选项卡的Project Options中加入/MT开关支持多线程库即可。
另外一个方法是在Project->Settings的常规选项卡,选择使用MFC。
  • 判断文件是否存在

BOOL FileExists(LPCTSTR lpszFileName)
{
  BOOL bRet;
  HANDLE hFind;
  WIN32_FIND_DATA wfd;
  hFind = FindFirstFile(lpszFileName, &wfd);
  bRet = hFind != INVALID_HANDLE_VALUE;
  FindClose(hFind);
  return bRet;
}

代码说明:
lpszFileName:要判断是否存在的文件名。
返回值:如果存在则返回TRUE,否则返回FALSE。

  • 删除一个文件夹

BOOL DelTree(LPCTSTR lpszPath)
{
  SHFILEOPSTRUCT FileOp;
  FileOp.fFlags = FOF_NOCONFIRMATION;
  FileOp.hNameMappings = NULL;
  FileOp.hwnd = NULL;
  FileOp.lpszProgressTitle = NULL;
  FileOp.pFrom = lpszPath;
  FileOp.pTo = NULL;
  FileOp.wFunc = FO_DELETE;
  return SHFileOperation(&FileOp) == 0;
}

代码说明:
lpszPath:要删除的文件夹名称。
返回值:成功返回TRUE,否则返回FALSE。
备注:删除单个文件亦可。

  • 将位图句柄保存为BMP文件

BOOL SaveToFile(HBITMAP hBitmap, LPCTSTR lpszFileName)
{
  HDC hDC;
  //当前分辨率下每象素所占字节数
  int iBits;
  //位图中每象素所占字节数
  WORD wBitCount;
  //定义调色板大小, 位图中像素字节大小 ,位图文件大小 , 写入文件字节数
  DWORD dwPaletteSize=0, dwBmBitsSize=0, dwDIBSize=0, dwWritten=0;
  //位图属性结构
  BITMAP Bitmap;
  //位图文件头结构
  BITMAPFILEHEADER bmfHdr;
  //位图信息头结构
  BITMAPINFOHEADER bi;
  //指向位图信息头结构
  LPBITMAPINFOHEADER lpbi;
  //定义文件,分配内存句柄,调色板句柄
  HANDLE fh, hDib, hPal,hOldPal=NULL;
 
  //计算位图文件每个像素所占字节数
  hDC = CreateDC("DISPLAY", NULL, NULL, NULL);
  iBits = GetDeviceCaps(hDC, BITSPIXEL) * GetDeviceCaps(hDC, PLANES);
  DeleteDC(hDC);
  if (iBits <= 1)
    wBitCount = 1;
  else if (iBits <= 4)
    wBitCount = 4;
  else if (iBits <= 8)
    wBitCount = 8;
  else
    wBitCount = 24;
  GetObject(hBitmap, sizeof(Bitmap), (LPSTR)&Bitmap);
  bi.biSize = sizeof(BITMAPINFOHEADER);
  bi.biWidth = Bitmap.bmWidth;
  bi.biHeight = Bitmap.bmHeight;
  bi.biPlanes = 1;
  bi.biBitCount = wBitCount;
  bi.biCompression = BI_RGB;
  bi.biSizeImage = 0;
  bi.biXPelsPerMeter = 0;
  bi.biYPelsPerMeter = 0;
  bi.biClrImportant = 0;
  bi.biClrUsed = 0;
  dwBmBitsSize = ((Bitmap.bmWidth * wBitCount + 31) / 32) * 4 * Bitmap.bmHeight;
  //为位图内容分配内存
  hDib = GlobalAlloc(GHND,dwBmBitsSize + dwPaletteSize + sizeof(BITMAPINFOHEADER));
  lpbi = (LPBITMAPINFOHEADER)GlobalLock(hDib);
  *lpbi = bi;
  // 处理调色板 
  hPal = GetStockObject(DEFAULT_PALETTE);
  if (hPal)
  {
    hDC = GetDC(NULL);
    hOldPal = SelectPalette(hDC, (HPALETTE)hPal, FALSE);
    RealizePalette(hDC);
  }
 
  // 获取该调色板下新的像素值
  GetDIBits(hDC, hBitmap, 0, (UINT) Bitmap.bmHeight, (LPSTR)lpbi + sizeof(BITMAPINFOHEADER)
    +dwPaletteSize, (BITMAPINFO *)lpbi, DIB_RGB_COLORS);
  //恢复调色板
  if (hOldPal)
  {
    SelectPalette(hDC, (HPALETTE)hOldPal, TRUE);
    RealizePalette(hDC);
    ReleaseDC(NULL, hDC);
  }
  //创建位图文件 
  fh = CreateFile(lpszFileName, GENERIC_WRITE,0, NULL, CREATE_ALWAYS,
    FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, NULL);
 
  if (fh == INVALID_HANDLE_VALUE)
    return FALSE;
  // 设置位图文件头
  bmfHdr.bfType = 0x4D42; // "BM"
  dwDIBSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + dwPaletteSize + dwBmBitsSize;
  bmfHdr.bfSize = dwDIBSize;
  bmfHdr.bfReserved1 = 0;
  bmfHdr.bfReserved2 = 0;
  bmfHdr.bfOffBits = (DWORD)sizeof(BITMAPFILEHEADER) + (DWORD)sizeof(BITMAPINFOHEADER) + dwPaletteSize;
  // 写入位图文件头
  WriteFile(fh, (LPSTR)&bmfHdr, sizeof(BITMAPFILEHEADER), &dwWritten, NULL);
  // 写入位图文件其余内容
  WriteFile(fh, (LPSTR)lpbi, dwDIBSize, &dwWritten, NULL);
  //清除
  GlobalUnlock(hDib);
  GlobalFree(hDib);
  CloseHandle(fh);
  return TRUE;
}

代码说明:
hBitmap:要保存的位图句柄。
lpszFileName:要保存的BMP文件名。
返回值:成功返回TRUE,否则返回FALSE。

sbcl 即是clip complier

  • 2015年09月29日 16:12
  • 10.55MB
  • 下载

配置描述文件web clip-iOS技巧:不越狱在主屏创建快速拨打图标

转:http://www.app111.com/doc/100020386_1.html   安卓上有个很方便的功能,可以把联系人放到桌面上来,点击则迅速拨打电话,非常的方便,对于越狱人士来说,...

opengl clip cap

  • 2014年02月27日 18:00
  • 105KB
  • 下载

用CSS3的clip-path样式进行图片的裁剪

1.兼容性 不支持IE和Firefox,支持webkit浏览器。注意,在现代浏览器中需要使用-webkit-前缀。 2.使用方法 1.裁剪三角形 元素的左上角为(0 0);poly...

Easy Clip

  • 2006年03月16日 00:00
  • 464KB
  • 下载

梯度爆炸的解决办法:clip gradient

1.梯度爆炸的影响在一个只有一个隐藏节点的网络中,损失函数和权值w偏置b构成error surface,其中有一堵墙,如下所示   损失函数每次迭代都是每次一小步,但是当遇到这堵墙时,在墙上的某点...

android canvas clip

  • 2011年11月09日 13:58
  • 47KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:code clip
举报原因:
原因补充:

(最多只允许输入30个字)