16,472
社区成员
发帖
与我相关
我的任务
分享
TCHAR acTime[200];
memset(acTime,0,sizeof(acTime));
_tsprintf(acTime, TEXT("%02d:%02d\r\n"), Hour, Sec);
wsprintf(acTime, L"test%02d:%02d\r\n", Hour, Sec);
WriteFile(handle,acTime,10,NULL,NULL); //这句导致内存错误
//-->
DWORD dwWritten;
WriteFile(handle,acTime,14,&dwWritten,NULL); //现在应该多长?
//这个地方是拷贝的,少拷了d
wsprintf(acTime, L"%02d:%02\r\n", Hour, Sec);
//-->
wsprintf(acTime, L"%02d:%02d\r\n", Hour, Sec); //漏了一个‘d’
WriteFile(handle,acTime,10,NULL,NULL); //这句导致内存错误
//-->
DWORD dwWritten;
WriteFile(handle,acTime,14,&dwWritten,NULL); //请问这里的14是怎么算出来的? 我这样算4+1+4+1=10;
//lz这段程序,在Vs2008和VC6下根本就非法操作。
wsprintf(acTime, L"%02d:%02\r\n", Hour, Sec);
//-->
wsprintf(acTime, L"%02d:%02d\r\n", Hour, Sec); //漏了一个‘d’
WriteFile(handle,acTime,10,NULL,NULL); //这句导致内存错误
//-->
DWORD dwWritten;
WriteFile(handle,acTime,10,&dwWritten,NULL);
SYSTEMTIME sysTime;
GetSystemTime(&sysTime);
INT Sec = sysTime.wSecond;
INT Hour=sysTime.wHour;
WCHAR acTime[200] = {0};
memset(acTime,0,sizeof(acTime));
wsprintfW(acTime, L"%02d:%02d\r\n", Hour, Sec); // 是不有笔误? 按照你的代码,长度为12,按照我的就是14
HANDLE handle=CreateFile(TEXT("C:\\alarm_log.txt"),
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL, NULL);
if(handle!= INVALID_HANDLE_VALUE)
{
SetFilePointer(handle, 0, NULL, FILE_END);
DWORD dwWritten;
WriteFile(handle,acTime, 14,&dwWritten,NULL); // 长度为10吗?
TRACE("%d\n", dwWritten);
}
else
::MessageBox(NULL,TEXT("create file error"),TEXT("error"),MB_OK);
SYSTEMTIME sysTime;
GetSystemTime(&sysTime);
INT Sec = sysTime.wSecond;
INT Hour=sysTime.wHour;
TCHAR acTime[200];
memset(acTime,0,sizeof(acTime));
wsprintf(acTime, L"%02d:%02\r\n", Hour, Sec); //换行符在这里
HANDLE handle=CreateFile(TEXT("C:\\windows\\alarm_log.txt"),
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL, NULL);
if(handle!= INVALID_HANDLE_VALUE)
{SetFilePointer(handle, 0, NULL, FILE_END);
WriteFile(handle,acTime,10,NULL,NULL); //即使下面加上WriteFile(handle,_TEXT("\r\n"),10,NULL,NULL)也不行。
}
else
MessageBox(NULL,TEXT("create file error"),TEXT("error"),MB_OK);