mfc中 打开文件让文件的机器码显示在editctrl上
时间: 2024-02-27 22:58:53 浏览: 88
要让文件的机器码显示在 MFC 的 CEdit 控件上,可以按照以下步骤进行:
1. 创建一个 CEdit 对象,并将它添加到对话框或窗口中。
2. 打开文件,并读取文件的内容到一个缓冲区中。
3. 将缓冲区中的内容转换成机器码,并将机器码字符串显示在 CEdit 控件中。
下面是一个示例代码:
```cpp
void CMyDlg::OnBtnOpenFile()
{
CFileDialog dlg(TRUE, NULL, NULL, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, _T("All Files (*.*)|*.*||"));
if (dlg.DoModal() == IDOK)
{
CString strFilePath = dlg.GetPathName();
HANDLE hFile = CreateFile(strFilePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE) {
DWORD dwFileSize = GetFileSize(hFile, NULL);
BYTE* buf = new BYTE[dwFileSize];
DWORD dwRead;
if (ReadFile(hFile, buf, dwFileSize, &dwRead, NULL)) {
CString strHex;
for (DWORD i = 0; i < dwFileSize; i++) {
CString strByte;
strByte.Format(_T("%02X "), buf[i]);
strHex += strByte;
if ((i + 1) % 16 == 0) {
strHex += _T("\r\n");
}
}
m_editCtrl.SetWindowText(strHex);
}
delete[] buf;
CloseHandle(hFile);
}
}
}
```
这个示例代码中,我们通过 CFileDialog 对话框让用户选择一个文件,然后打开文件并读取文件的内容到一个缓冲区中。接着,我们将缓冲区中的内容转换成机器码字符串,并将字符串显示在 CEdit 控件中。
需要注意的是,这里将每个字节转换成两个十六进制数,用空格隔开。每输出 16 个字节后换行。这样可以保证机器码显示的格式清晰。
阅读全文