ASP 调用DLL(封装SOCKET)问题及思路

ky310 2009-06-19 06:16:16
各位兄台:

近些天工程需要,尝试在ASP页面中调用DLL。目前所做的一些尝试如下:

1、新建WIN32动态链接库工程,工程中插入一个新类,该类中封装了SOCKET,将该类__declspec(dllexport)倒出,VC测试工程中可正常使用,但ASP中可调用该DLL吗?我尝试
  dim Obj
  Set Obj = Server.CreateObject("工程名.封装SOCKET类名")//

  dim m_Socket
  m_Socket = Obj.CreateUDPSocket(6666),结果不行CreateUDPSocket是对象的属性或方法

2、新建了一个ATL COM,同样在其中插入新类,封装SOCKET,倒出后VC可正常调用。regsvr32 DLL地址,注册成功,但在ASP页面调用还是上面的问题

没在ASP中调用过DLL,是不是调用的DLL也要像ActiveX那样倒出属性和方法才行?从前倒是调用过OCX

恳请各位帮忙,或提供在ASP页面操作SOCKET思路也可以。谢谢了!
...全文
108 点赞 收藏 13
写回复
13 条回复
oyljerry 2009年06月23日
[Quote=引用 12 楼 ky310 的回复:]
改为ActiveX DLL 后今天应用到ASP页面当中调用成功,感谢各位的支持!

还想问问:是不是ASP能调用的DLL都必须是ActiveX形式的?如果不是的话,之前我的问题出在哪里?
[/Quote]
用ActiveX格式比较规范
回复 点赞
ky310 2009年06月23日
改为ActiveX DLL 后今天应用到ASP页面当中调用成功,感谢各位的支持!

还想问问:是不是ASP能调用的DLL都必须是ActiveX形式的?如果不是的话,之前我的问题出在哪里?
回复 点赞
zhaohongbo83 2009年06月21日
是不是 你注册的次数太多,在注册表里信息都乱了

你用的什么系统,能不能把注册表里的信息都从新清一下

然后再注册 看一下
回复 点赞
ky310 2009年06月20日
[Quote=引用 6 楼 oyljerry 的回复:]
引用 5 楼 ky310 的回复:
主要是开始没在ASP中调用过DLL,就直接封装成一般的DLL了,后来出现问题了,想看看这种方式到底可行不可行,如果不可行的话再换为ActiveX。先行谢过了, 我换为ActiveX 试下.

不过记得ActiveX调用时需要根据注册ID来的,那是不是可以将某个ActiveX的注册ID在编写的时候就定下来呢?


每个ActiveX都有一个唯一的GUID,生成了以后,以后ASP就用这个GUID,你的ActiveX就不要再换了,注册时候注册控件就…
[/Quote]

噢,呵呵,Thx
回复 点赞
ky310 2009年06月20日
[Quote=引用 7 楼 lzd 的回复:]
用regsvr32先注册一下
[/Quote]
注册过了,第1种情况下的DLL是注册不了的,因为没有接口
回复 点赞
forcal 2009年06月20日
1、如果没有窗口之类,就做成COM形式,如果有窗口,就做成ActiveX形式。
2、要想使ASP能够调用,属性或方法的参数须为VARIANT参数。
3、参考我设计的FcScript,有源代码。FcScript是由Forcal和MForcal支持的脚本控件,目前仅定义了VBScript接口,以后再增加其他接口。VBScript接口全部使用VARIANT参数。
FcScript能正常手动安装(regsvr32)使用,但无法通过网页安装本控件,目前正在升级中。
回复 点赞
lzd 2009年06月19日
用regsvr32先注册一下
回复 点赞
oyljerry 2009年06月19日
[Quote=引用 5 楼 ky310 的回复:]
主要是开始没在ASP中调用过DLL,就直接封装成一般的DLL了,后来出现问题了,想看看这种方式到底可行不可行,如果不可行的话再换为ActiveX。先行谢过了, 我换为ActiveX 试下.

不过记得ActiveX调用时需要根据注册ID来的,那是不是可以将某个ActiveX的注册ID在编写的时候就定下来呢?
[/Quote]
每个ActiveX都有一个唯一的GUID,生成了以后,以后ASP就用这个GUID,你的ActiveX就不要再换了,注册时候注册控件就可以了
回复 点赞
ky310 2009年06月19日
主要是开始没在ASP中调用过DLL,就直接封装成一般的DLL了,后来出现问题了,想看看这种方式到底可行不可行,如果不可行的话再换为ActiveX。先行谢过了, 我换为ActiveX 试下.

不过记得ActiveX调用时需要根据注册ID来的,那是不是可以将某个ActiveX的注册ID在编写的时候就定下来呢?
回复 点赞
wshcdr 2009年06月19日
看调用函数的返回值,确定错误
回复 点赞
killbug2004 2009年06月19日
oyljerry 2009年06月19日
ASP最好做成ActiveX形式的DLL,然后再调用对应的接口等
回复 点赞
bragi523 2009年06月19日
为什么不写成ActiveX的
回复 点赞
发动态
发帖子
ATL
创建于2007-09-28

3024

社区成员

4.8w+

社区内容

ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区公告
暂无公告