vc2010怎么保存程序文件

vc2010怎么保存程序文件,第1张

如果您使用的是Visual Studio 2010进行程序开发,并想要保存程序文件,可以按照以下步骤进行 *** 作:

1. 打开您的程序代码文件或者解决方案文件,确保您已经对程序进行了编辑和调试。

2. 选择“文件”菜单,然后选择“保存”或者“另存为”。

3. 如果您选择“保存”,则程序文件将以当前文件名和格式进行保存。如果您选择“另存为”,则可以选择新的文件名和文件格式进行保存,同时可以选择保存的位置和其他选项。

4. 在保存过程中,您需要根据系统提示进行相关 *** 作,例如选择保存类型、路径、文件名、编码方式等等。

5. 如果您需要对程序进行版本控制或备份,可以选择相关的版本控制工具或者备份工具进行 *** 作,以保证程序安全和可靠。

需要注意的是,在保存程序文件时,建议您使用规范的文件命名和格式,以便于程序管理和维护。同时,也需要保护程序的安全和知识产权,避免因程序泄露或者侵权导致的法律问题和商业风险。如果您需要更多的帮助或者支持,可以参考Visual Studio 2010的使用手册或者联系相关技术支持。

//保存位图

int   SaveBitmap(HBITMAP   hBitmap,   LPSTR   lpFileName)   

{   

//lpFileName   为位图文件名   

HDC           hDC                     

//设备描述表   

int           iBits               

    //当前显示分辨率下每个像素所占字节数   

WORD         wBitCount         

//位图中每个像素所占字节数   

//定义调色板大小,   位图中像素字节大小   ,     位图文件大小   ,   写入文件字节数   

DWORD                       dwPaletteSize=0,dwBmBitsSize,dwDIBSize,   dwWritten   

BITMAP                     Bitmap                   

//位图属性结构   

BITMAPFILEHEADER       bmfHdr                   

//位图文件头结构   

BITMAPINFOHEADER       bi                           

//位图信息头结构     

LPBITMAPINFOHEADER   lpbi                       

//指向位图信息头结构   

HANDLE                     fh,   hDib,   hPal   

HPALETTE           hOldPal=NULL   

//定义文件,分配内存句柄,调色板句柄   

//计算位图文件每个像素所占字节数   

iBits=24   

if   (iBits   <=   1)   

wBitCount   =   1   

else   if   (iBits   <=   4)   

wBitCount   =   4   

else   if   (iBits   <=   8)   

wBitCount   =   8   

else   if   (iBits   <=   32)   

wBitCount   =   24   

//计算调色板大小   

if   (wBitCount   <=   8)   

dwPaletteSize=(1<<wBitCount)*sizeof(RGBQUAD)   

//设置位图信息头结构   

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.biClrUsed                   =   0   

bi.biClrImportant             =   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,   hOldPal,   TRUE)   

RealizePalette(hDC)   

ReleaseDC(NULL,   hDC)   

}   

//创建位图文件           

fh=CreateFile(lpFileName,   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   

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12167744.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存