使用VC++6.0制作ASP服务器控件简介(zt)

使用VC++6.0制作ASP服务器控件简介
富 亮
--------------------------------------------------------------------------------

用ASP写网页的程序员,一定对VBSript语句“Set Conn=Server.Object('ADODB.Connection’)”非常熟悉。该语句是利用ASP的Server对象创建了一个数据库控件,它提供了一系列的方法和属性,可以帮助我们在ASP中方便的实现数据库的操作。类似的,在Visual InteDev6.0中,我们还可以看到一些ASP的内置组件如“Scripting.FileSystemObject”。但是,在有的场合,仅利用这些是不够的或复杂的,而且ASP的Script语言远不如C++语言功能强大(如建立链表,B+树结构等),这就使我们想到,是否可以在开发网页时使用具有良好数据结构的C++语言。虽然CGI,ISAPI等都可谓是用C/C++开发网页的先驱,但我们知道CGI,ISAPI的开发周期很长,且不与网页结合,直观性差,编写、调试困难;而在稳定性上,由于ISAPI是动态链接的方式,因此在执行若出现问题,会使得Web服务器一起瘫痪。而ASP正好能补足这些缺点。
由此可见,如果能学会编写ASP组件就能结合ASP的长处编写出强大的网页。可惜的是,笔者在市面上很少看到有专门讲如何用VC++来制作ASP组件的书籍。一般VC书籍只讲一些写Windows窗口程序或再加上编写普通的动态链接库。而ASP书籍更是只谈ASP中内置组件的使用方法。其实,如果要真正掌握编写ASP组件的机制,要牵涉到大量的COM技术的知识。而一些讲COM技术的书是很深奥的,且很少能结合有用的实例。为此,笔者想借此文以最简单的方法向大家介绍编写过程。所谓简介,正说明将不涉及COM知识的具体细节,仅给出实现方法。
一、建立工程
打开VC++6.0,选择New Projects中的ALT COM AppWizard, 并输入好工程名(如MyStudio),记住该工程名将成为ASP组件名的一部分(其实可以修改,但很麻烦),在下一页上选择Server Type 为DLL,并可考虑在Support MFC前打勾(想必使用MFC编程的人不少)。按Finish结束。在生成的代码中有四个标准的导出函数注册DLL的,我们不必关心。

二、创建COM对象(新建ATL活动模版库类)
在菜单上选择Insert New Class,并新建一个ATL Class,如取名为CmyComponent,你会发现在接口表中出现了一个ImyComponent,以后创建该接口的方法和属性就可以在ASP中使用了。把Aggregatable选项去掉,我们不需要它。保持其他不变。

三、添加接口方法
在ClassView中,右击ImyComponent,在出现的菜单中按Add Method。如图,在Method Name中可写上方法名如InitMyComp。在Parameters中写上方法的参数如[in]int Number1,[out,retbal]int* Number2。这里要特别说明的是参数的写法。

时间: 2024-10-24 09:50:42

使用VC++6.0制作ASP服务器控件简介(zt)的相关文章

使用VC++6.0制作ASP服务器控件简介

c++|服务器|控件 用ASP写网页的程序员,一定对VBSript语句"Set Conn=Server.Object('ADODB.Connection')"非常熟悉.该语句是利用ASP的Server对象创建了一个数据库控件,它提供了一系列的方法和属性,可以帮助我们在ASP中方便的实现数据库的操作.类似的,在Visual InteDev6.0中,我们还可以看到一些ASP的内置组件如"Scripting.FileSystemObject".但是,在有的场合,仅利用这些

VC++ 6.0制作QQ连连看外挂

图一 界面描述 一.制作思路 得到QQ连连看窗口指针,从而得到CDC: 对每幅图片取4个点进行编码: 实现连连看的算法: 模拟鼠标消去块: 二.部分代码 //定义的数据 bool flagx=true; int point1x,point1y,point2x,point2y;//保存需要单击点的位置 struct MYCOLOR { COLORREF c[4]; }; MYCOLOR tc[230];//颜色表230〉11*19 int tcnum; //所有图片的种类 int map[19][

《C语言课程设计》一1.1 VC 6.0简介

1.1 VC 6.0简介 Visual C++ 6.0是Microsoft公司推出的开发Win32程序的集成开发环境,可将"高级语言"翻译为"机器语言(低级语言)",并支持面向对象可视化编程.它具有程序框架自动生成.灵活方便的类管理.代码编写和界面设计集成交互操作.可开发多种程序等优点,而且通过简单的设置即可使其生成的程序框架支持数据库接口.OLE和WinSock网络. Visual C++ 6.0, 简称VC 6.0或VC 6,是微软公司于1998年推出的Visu

【求助】ASP.NET 2.0制作网站时候,如何使网站内容全屏(像本站)或居中(像pconline)?

问题描述 ASP.NET2.0制作网站时候,如何使网站内容居中(pconline)或全屏(本站)?我是用master页面和content页面编辑的,当我编辑或运行的时候,发现网页的内容都是左对齐的,很不协调,如何使网站内容全屏(像本站一样自动收缩)或居中(像pconline那样网页的两边都是蓝色的空白)?最好全屏的.我是菜鸟,这几天才开始接触ASP.NET,恳请各位大侠不吝赐教.感激不尽!附件是我网页. 解决方案 解决方案二:页面居中:<bodystyle="text-align:cent

[渣译文] SignalR 2.0 系列: SignalR简介

原文:[渣译文] SignalR 2.0 系列: SignalR简介 英文渣水平,大伙凑合着看吧,并不是逐字翻译的-- 这是微软官方SignalR 2.0教程Getting Started with ASP.NET SignalR 2.0系列的翻译,这里是第一篇:SignalR简介 原文: Introduction to SignalR 什么是SignalR? ASP.NET SignalR是为简化开发开发人员将实时web内容添加到应用程序过程而提供的类库.实时web功能指的是让服务器代码可以随

代码-vc 6.0 error c2491 报错啊,头大

问题描述 vc 6.0 error c2491 报错啊,头大 简单又奇怪的问题又来了... debug版完全正常:release版报错c2491. definition of dllimport function not allowed. (我是接手的别人的项目,项目工程代码里没有看到有dllimport 或者是其他明显的问题啊). 解决方案 检查一下你Release版本跟Debug版本的工程配置,尤其预编译宏的设置. 应该有宏定义不一致,导致dllexport,dllimport的导入 解决方

环境-vc++6.0内关于s=(i++)*(i++)的问题

问题描述 vc++6.0内关于s=(i++)*(i++)的问题 int i = 0: s = (i++)*(i++) printf("%d",s): 这个结果应该是多少?我个人分析应该是2,第一个i++使用的是1 然后i的值应该变成2然后第二个i使用的是2 然后i变成3 结果s的值应该是2 但是在vc++6.0的环境下运行结果为什么是1呢?新手求解. 解决方案 这个问题问了无数遍,我想这么告诉你. 就C++语言来说,这个是语言未定义行为,所谓语言未定义行为,就是在语言规范中没有规定遇到

VC++6.0如何添加头文件(graphics.h)??

问题描述 VC++6.0如何添加头文件(graphics.h)?? 'graphics.h': No such file or directory Error executing cl.exe. 编译中出现这个问题(本人初学者),网上说要添加头文件,按照网上的教程结果错误更多了,头文件添加不成功,请求大神支援,怎么破??? (详细一点可以么?最好附上截图,万分感谢!) 解决方案 初学者的话,建议你换Borland C++或者Turbo C++ 这是是属于DOS时代Borland搞出来的一个绘图库

工程-vc++6.0写的程序用vs2010打开需要改变些什么

问题描述 vc++6.0写的程序用vs2010打开需要改变些什么 要整理一个程序 ,不是自己写的,原来是vc++6.0写的,现在用vs2010打开报一些很奇怪的错,都指向头文件,complex 还有string 搞了很长时间了,哪位大神给解答一下,小弟感激不尽啊,谢谢 解决方案 这可能是头文件的错误.因为不同的编译器可能将库文件放在不同的头文件中,所以要想把错误改正,需要了解需要的头文件放在那个库中.其实用遵循统一标准的编译器就可以避免这些问题,可以用linux gcc 编译器! 解决方案二: