描述:
本人只熟悉开发MFC程序,但从未写过ActiveX控件,这方面的知识基本属于未入门级别。现在迫切需要尽快上手ActiveX开发,故在此高分求教。
缘由是这样的:现有一个MFC开发的C/S结构的应用,客户端是单文档Doc/View结构的应用程序,功能已经比较完善了,现在想要通过将客户端程序做一个ActiveX版本,使其同时具备B/S的架构,由于对ActiveX控件相关知识不了解,不知道存在哪些限制,下面列出一些我认为可能存在问题的地方,希望大家帮忙看看,给点意见,先谢谢了!
1。原C/S应用的通讯是采用纯socket方式,不知道嵌入IE中的ActiveX控件是否允许直接使用socket与服务端通讯?
2。原C/S应用的客户端支持全屏视图方式,也就是说可以自己调整自己的窗口风格、大小和位置,不知道嵌入IE中的ActiveX控件是否允许这样?
3。做这个ActiveX控件的主要目的不是为了给第三方程序调用,而仅仅是为了使C/S结构变成B/S结构,使用户不必手动下载和安装客户端软件,通过直接访问某网页即可自动提示下载和安装ActiveX控件,然后就可以方便的使用客户端了。仅希望给予原客户端的基础上修改尽可能少的代码就完成该ActiveX控件,不知这样是否可行?若不可行,主要是由于什么原因?
4。还希望C/S结构和B/S结构并存,也就是说,原客户端仍然要继续开发和升级,同时ActiveX控件也要同样升级,希望它们共用绝大部分代码,从而只需要修改一个地方。本人有两种设想:一种是二者进行源代码级共用,分别编译;另一种是将全部代码移至ActiveX,把原客户端改为一个空壳,直接引用二进制ActiveX控件。各位觉得哪种方式会好一些?
解决方案1:
就在控件里面创建进程,启动普通的应用程序,即可以没有提示直接运行.
解决方案2: 这当然可以啊
而且这真是比较简单的办法了
你对Socket这么熟悉,做这个应该一点问题都没有
其实你不申请证书也行,你在安装程序里面把这个控件安装上,用户就不用下载了
但IObjectSafety接口得实现,不然IE会提示是否允许交互,比较烦人,实在方法网上搜索一下就有
但是你得保证用户打开你指定网页啊,不然你的控件怎么能运行
如果只把普通程序做成ActiveX,加一些基本方法和属性非常简单
不存在是否允许执行Socket的问题,只是你的控件要实在IObjectSafety接口,这样IE就不会提示什么是否允许交互之类的了
自动下载好像得有安全证书,不然IE根本不下载,至于安装不安装就得看用户了,IE一般会拦截它,但会提示用户是否安装