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

//将编辑框的数据保存到指定文件
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
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值