打开和保存文件对话框调用动态库

    xiaoxiao2021-03-25  195

    //将编辑框的数据保存到指定文件 void CFileDialogDlg::OnBnClickedButton10() { // TODO: Add your control notification handler code here // 设置过滤器 TCHAR szFilter[] = _T("文本文件(*.txt)|*.txt|Word文件(*.doc)|*.doc|所有文件(*.*)|*.*||"); // 构造保存文件对话框 CFileDialog fileDlg(FALSE, _T("doc"), _T("my"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter, this); CString strFilePath; // 显示保存文件对话框 if (IDOK == fileDlg.DoModal()) { // 如果点击了文件对话框上的“保存”按钮,则将选择的文件路径显示到编辑框里 strFilePath = fileDlg.GetPathName(); //往编辑框里写内容 // SetDlgItemText(IDC_EDIT2, strFilePath); } CString str; // 获取编辑框的内容 GetDlgItem(IDC_EDIT2)->GetWindowText(str); //打开文件 FILE* fp = fopen(strFilePath,"w"); if (!fp) AfxMessageBox(" open file error"); //将编辑框的内容写到文件里 fwrite(str,1,str.GetLength(),fp); fclose(fp); } // 点击退出按钮,结束进程 void CFileDialogDlg::OnBnClickedButton11() { PostQuitMessage(0); } // 通过路径打开文件,读取文件的数据,调用动态库实现转换功能 void CFileDialogDlg::OnBnClickedButton13() { CString str; //得到文本中的路径 GetDlgItem(IDC_EDIT7)->GetWindowText(str); // 只读方式打开文件 FILE* fp = fopen(str,"r"); if (!fp) AfxMessageBox(" open file error"); char StrBuf[100] = { 0 }; // 读取文件的数据 fread( StrBuf, 1, sizeof(StrBuf), fp); fclose(fp); typedef char*(* Dstr2hex)(char* dest, char* src); typedef char*(* Dhex2str)(char* dest, char* src); // 加载动态库 HINSTANCE hDll = LoadLibrary("dllStrAndHex.dll"); //printf("open hDll%d\n", hDll); if(hDll == NULL) AfxMessageBox( "DanymicLibrary Failed"); // 得到函数的入口地址 Dstr2hex mystr = (Dstr2hex)GetProcAddress( hDll, "hex2str"); AfxMessageBox( StrBuf ); char dest[1000] ={ 0 }; mystr(dest, StrBuf); // 卸载动态库 FreeLibrary(hDll); // 将缓冲区的内容显示到文本中 SetDlgItemText(IDC_EDIT2, dest); // AfxMessageBox(str); // TODO: Add your control notification handler code here }
    转载请注明原文地址: https://ju.6miu.com/read-1222.html

    最新回复(0)