??xml version="1.0" encoding="utf-8" standalone="yes"?> 1.支持直接d多个文g 2.支持直接d某个文g夹下面的所?/span>excel文g 3 支持直接?/span>excel文g拖放到程序界?/span> 4.可以单选或多选记录然后用右键删除 5.可以定义excel表头记录?/span> 6.本版本暂时只支持合ƈExcel文g的第一?/span>sheet 7.双击某条记录可直接删?/span> 8.开发环?/span> VC6+OFFICE2007Q其他版?/span>OFFICE有可能不兼容
本程序用来将多个excel报表合ƈ成一个文Ӟ取第一个文件的?/span>n行做为报表的题头Q?/span>n可自定义?/span>
]]>
]]>
Cdrecord-Clone 2.01-dvd (i686-pc-linux-gnu) Copyright (C) 1995-2004 J枚rg Schilling
Note: This version is an unofficial (modified) version with DVD support
Note: and therefore may have bugs that are not present in the original.
Note: Please send bug reports or support requests to http://bugzilla.redhat.com/bugzilla
Note: The author of cdrecord should not be bothered with problems in this version.
scsidev: 'ATA'
devname: 'ATA'
scsibus: -2 target: -2 lun: -2
Linux sg driver version: 3.5.27
Using libscg version 'schily-0.8'.
cdrecord: Warning: using inofficial libscg transport code version (schily - Red Hat-scsi-linux-sg.c-1.83-RH '@(#)scsi-linux-sg.c 1.83 04/05/20 Copyright 1997 J. Schilling').
scsibus1:
1,0,0 100) 'HL-DT-ST' 'CD-RW GCE-8400B ' '1.02' Removable CD-ROM
1,1,0 101) *
1,2,0 102) *
1,3,0 103) *
1,4,0 104) *
1,5,0 105) *
1,6,0 106) *
1,7,0 107) *
[root@linux-test188 ~]# cdrecord -v speed=8 dev=1,0,0 test.iso
[root@linux-test188 ~]# mkisofs -r -o cd.iso -m temp ./tempfiles
// Generated message map functions
//{{AFX_MSG(Input)
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg void OnButtonOk();
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
afx_msg void OnPaint();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
声明消息循环:
BEGIN_MESSAGE_MAP(Input, CDialog)
//{{AFX_MSG_MAP(Input)
ON_BN_CLICKED(IDC_BUTTON_OK, OnButtonOk)
ON_WM_LBUTTONDBLCLK()
ON_WM_PAINT()
ON_WM_ERASEBKGND()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
实现Q?br />BOOL Input::OnEraseBkgnd(CDC* pDC)
{
if(m_hBmp)
{
BITMAP bm;
GetObject(m_hBmp,sizeof(bm),&bm);
HDC hMemdc=CreateCompatibleDC(pDC->m_hDC);
if(hMemdc)
{
HBITMAP hOldBmp=(HBITMAP)SelectObject(hMemdc,m_hBmp);
if(hOldBmp)
{
BitBlt(pDC->m_hDC,0,0,bm.bmWidth,bm.bmHeight,hMemdc,0,0,SRCCOPY);
SelectObject(hMemdc,hOldBmp);
DeleteDC(hMemdc);
DeleteObject(hOldBmp);
return TRUE;
}
else
DeleteDC(hMemdc);
}
}
return CDialog::OnEraseBkgnd(pDC);
}
snprintf(_snprintf)的声明是q样?/p>
int _snprintf(
char *buffer,
size_t count,
const char *format [,
argument] ...
);
If len < count, then len characters are stored in buffer, a null-terminator is appended, and len is returned.
If len = count, then len characters are stored in buffer, no null-terminator is appended, and len is returned.
If len > count, then count characters are stored in buffer, no null-terminator is appended, and a negative value is returned.
最常见的错误用法有:
1.
char sa[256]={0};
_snprintf(sa,sizeof(sa),"%s",sb);
//错误原因:当sb的长?gt;=256的时?sa没?\0'l尾
2.
char sa[256];
_snprintf(sa,sizeof(sa)-1,"%s",sb);
//错误原因:当sb的长?gt;=255的时?sa没?\0'l尾,忘记lsa初始?/p>
3.
char sa[256];
_snprintf(sa,sizeof(sa)-1,"%s",sb);
sa[sizeof(sa)]=0;
//错误原因:最后一行数l越?/p>
正确的用?br />1. //推荐用法
char sa[256];
sa[sizeof(sa)-1]=0;
_snprintf(sa,sizeof(sa),"%s",sb);
if(sa[sizeof(sa)-1]!=0)
{
printf("warning:string will be truncated");
sa[sizeof(sa)-1]=0;
}
2.
char sa[256]={0};
int result = _snprintf(sa,sizeof(sa),"%s",sb);
if(result==sizeof(sa) || result<0)
{
printf("warning:sting will be truncated");
sa[sizeof(sa)-1]=0;
}
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
当然最后还要完成函数实?/p>