vc.NET中如何做ATL ASP组件?

qaymuic 2004-07-10 10:14:30
用VC.NET做一个ATL ASP组件,假设是TRY.1,再加一个方法,test(LONG ss) (可以是任何类型参数,实际代码可以用默认的,不用添加任何东西)
现在编译,在ASP里引用:
set ff=server.createobject("try.1")
ff.test request("d1")
保管IIS服务器都会宕了,而用VC6.0做就不会有问题。
问题究竟在哪里呢?如何解决?

不相信的可以自己试验呀
...全文
180 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
stonepeter 2004-10-21
  • 打赏
  • 举报
回复
能不能把你的解决方法贴出来啊?
我也在写ASP组件,遇到一些问题。
qaymuic 2004-08-03
  • 打赏
  • 举报
回复
我初步确定,这是vs.net的一个错误.同时也找到了解决办法.
谢谢大家.
qaymuic 2004-08-02
  • 打赏
  • 举报
回复
你们有没有试过?
msdn_user 2004-07-29
  • 打赏
  • 举报
回复
跟线程模型无关
qaymuic 2004-07-28
  • 打赏
  • 举报
回复
为什么VC6.0就没有?
会不会与threading("department")有关?
msdn_user 2004-07-19
  • 打赏
  • 举报
回复
类型不匹配有可能会导致ASP的DLL当掉
隔离程度为低的时候
也有可能导致IIS当掉
很简单,只要你的组件里面有一个异常
ASP就会当掉了
qaymuic 2004-07-18
  • 打赏
  • 举报
回复
看来没有人能解释了
qaymuic 2004-07-17
  • 打赏
  • 举报
回复
我只是举个例子
BSTR的结果是一样,也会使IIS宕了!
注意:不是类型不匹配,是IIS宕了!你们试一试呀。
msdn_user 2004-07-15
  • 打赏
  • 举报
回复
你在com中的数据类型为LONG
所以用 request("dl")作为参数是错误的
直接用数字6来调用是成功的
request("dl")是VARIANT类型
用VARIANT传递给LONG型参数
结果可能是未知的

解决方法就是把你的方法的参数改成VARIANT类型
在方法内部通过判断variant的类型并进行适当的转化

或者干脆采用BSTR类型
因为你的request("dl")应该是个字符串

qaymuic 2004-07-14
  • 打赏
  • 举报
回复
我是完全按照VC.NET测试的,除了通过菜单添加方法,没有手工写任何代码.
ff.test request("d1")
有问题
ff.test 6
就不会有问题
qaymuic 2004-07-14
  • 打赏
  • 举报
回复
谁知道吗?
online 2004-07-13
  • 打赏
  • 举报
回复
你需要使用regasm注册你的组件

set ff=server.createobject("命名空间.类名")
wangweixing2000 2004-07-13
  • 打赏
  • 举报
回复
masterz大虾都出来了!哈哈!
怎么可能呢?vc6下没有问题到.net下就更没有问题了!
对asp不太懂!首先你应保证你的对象创建成功,我去试试!
masterz 2004-07-12
  • 打赏
  • 举报
回复
一般progid 的样子是下面这样的,不知道你是否少写了一些
ProgID = s 'AcceptArray.ArrayTest.1'
VersionIndependentProgID = s 'AcceptArray.ArrayTest'
gracezhu 2004-07-12
  • 打赏
  • 举报
回复
会不会是权限的问题?

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧