您的位置:首页 > 编程语言 > C语言/C++

C语言随笔(1)

2011-11-12 14:32 106 查看
函数功能:复制串口调试助手中接收到的数据,保存为文件。

void SaveCOMtoFile(const char *fileName, const char *mode)
{
HWND parentWindow;
HWND editWindow;
TCHAR szParentWindowName[] = "串口调试助手 SComAssistant V2.2 For WIN9X/NT/2000";
TCHAR szErrorMessageMain[] = "未找到串口调试助手主窗口";
TCHAR szErrorMessageEdit[] = "未找到控件";
TCHAR szErrorMessageOpenFile[] = "无法正确打开文件";
TCHAR szWriteSucceed[] = "写入文件成功";
TCHAR szWriteFailed[] = "写入文件失败";
int controlID = 0x000003F1; //所需edit控件的ID(1009)
char * szTempString;
const int maxCharNum = 0xFFFF;
FILE * targetFile;
unsigned int stringLength;

//MessageBox(NULL, szParentWindowName, NULL, MB_OK);
if(!(parentWindow = FindWindow(NULL, szParentWindowName)))
{
//未找到串口调试助手主窗口
MessageBox(NULL, szErrorMessageMain, NULL, MB_OK);
return;
}
else
{
if (!(editWindow = GetDlgItem(parentWindow, controlID)))
{
MessageBox(NULL, szErrorMessageEdit, NULL, MB_OK);
}
else
{
szTempString = (char *)malloc(maxCharNum * sizeof(char));
ZeroMemory(szTempString, maxCharNum);
//GetDlgItemText(parentWindow, controlID, szTempString, 0xFFFFFFFF);
//GetWindowText(editWindow, szTempString, 999);
SendMessage(editWindow, WM_GETTEXT, maxCharNum, (LPARAM)szTempString);
stringLength = strlen(szTempString);
if(!(targetFile = fopen(fileName, mode)))
{
MessageBox(NULL, szErrorMessageOpenFile, NULL, MB_OK);
}
else
{
//if (fwrite(szTempString, stringLength, stringLength, targetFile) != stringLength)
if (fputs(szTempString, targetFile) < 0)
{
MessageBox(NULL, szWriteFailed, NULL, MB_OK);
}
else
{
MessageBox(NULL, szWriteSucceed, NULL, MB_OK);
}
}
//MessageBox(NULL, szTempString, NULL, MB_OK);
fclose(targetFile);
free(szTempString);
//MessageBox(NULL, NULL, NULL, MB_OK);
}
//MessageBox(NULL, szParentWindowName, NULL, MB_OK);
}

}

记录:
1.以下三种方法中,注释的两种不能正确获取edit控件的文本内容,原因未分析//GetDlgItemText(parentWindow, controlID, szTempString, 0xFFFFFFFF);
//GetWindowText(editWindow, szTempString, 999);
SendMessage(editWindow, WM_GETTEXT, maxCharNum, (LPARAM)szTempString);

2.fwrite写数据时,会多写入内容,原因未分析

//if (fwrite(szTempString, stringLength, stringLength, targetFile) != stringLength)
if (fputs(szTempString, targetFile) < 0)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  语言 null c