用VC++实现企业网络数据共享
2008-11-14 19:33:42 来源:WEB开发网图三:数据传输子模块实现流程
该模块的开发使用ATL,下面阐述具体开发过程:
1>. 基于Visual C++ 6.0工具建立ATL工程,本文将其定名为dbftp,组件基于MFC类进行编写,载体为动态链接文件并新建COM 接口提供外部调用;
2>. 建新ATL类,本文定类名ftpmdb。因为要编写的是进程内服务器,在用户调用时起作用,所以新建的ATL类提供了可以方便用户定制的COM接口--Iftpmdb;
3>. 定制COM接口的方法和属性,增加方法getmdb,属性errorstring,方法函数是数据传输的实现,属性是出错原因,因此,外部调用时,使用getmdb方法以后,需读取errorstring获得调用结果。最后,在ftpmdb类中添加CComBSTR类型的成员变量errorstring;
4>. 进入getmdb函数添加执行代码,另外,需注意此函数所在文件需将MFC中负责网络通信类的头文件afxinet.h包含入内,函数算法按步骤简述如下:
1)接口提供连接和本地配置信息,为BSTR类型字符串,需转换为CString类型,以方便向MFC的网络类函数传递参数,示例如:
CString serverip=url;
2)需建立新的Internet会话并进行FTP连接,同时可以开始接收连接错误代码,如下:
CInternetSession * session=new CInternetSession; CFtpConnection * conn;
try {
conn=session->GetFtpConnection(serverip,user,pwd);
/*进行ftp连接*/
}
catch (CInternetException* pEx) {
TCHAR szErr[1024];
if (pEx->GetErrorMessage(szErr, 1024)){
conn = NULL; errorstring.Empty();
errorstring.Append("连接字符有误! ");
errorstring.Append(szErr);
return S_FALSE;
}
/*获得异常,写errorstring采用Append方法*/
pEx->Delete();
}
更多精彩
赞助商链接