如何将一个dll文件用activex包装成web开发可以调用的东西

heatwin 2003-11-28 11:09:01
dll文件中就包含一些低层驱动的方法,但在web中无法调用,如何包装才可以呢?必须在vb里,谢谢!
...全文
86 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
heatwin 2003-11-28
  • 打赏
  • 举报
回复
因为在此前没做过这些东西,不知道是什么类型,即没法通过引用加进来,也没法注册。 rainstormmaster(rainstormmaster),您可以说得更详细一点吗?主要是没做过vb的东西,假设dll文件中有一个方法a,我要在新的dll中也有一个方法a,而这个方法调用原来的a。且新的dll可以很容易的为web开发的人调用。谢谢!
rainstormmaster 2003-11-28
  • 打赏
  • 举报
回复
最好说说你用的是什么dll文件
rainstormmaster 2003-11-28
  • 打赏
  • 举报
回复
如果是标准的dll,就先在类中声明函数,然后,public一个或多个function或sub,在function或sub中写你的代码,最后编译成activex dll

如果是activex dll,直接用createobject引用就可以了,没必要封装
online 2003-11-28
  • 打赏
  • 举报
回复
可能缺少依赖的文件
heatwin 2003-11-28
  • 打赏
  • 举报
回复
Public Declare Function IC_InitCOM Lib "MRC460CN.DLL" (ByVal iPortNum As Integer) As Integer


可是运行时老说MRC460CN.DLL找不到,这个文件在winnt\system32,工作目录里都已经有了

不知怎么解决,非常感谢大家的帮助!
任叔 2003-11-28
  • 打赏
  • 举报
回复
这样引用:
Declare Function xx Lib "xxx" Alias "xx" (params) As type

不过估计你这个dll应该是在客户端使用的,需要封装成ActiveX控件,并在页面上声明成自动下载



online 2003-11-28
  • 打赏
  • 举报
回复
假设dll文件中有一个方法a,我要在新的dll中也有一个方法a,而这个方法调用原来的a。且新的dll可以很容易的为web开发的人调用。谢谢!

Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

Public Function a As string
'以下忽略copyfile的用法,仅仅举个例子而已
if copyfile(参数)=0 then
a=0
else
a=1
end if
End Function

编译生成dll文件。注册regsvr32 路径\dll。
web页面中
set dcss=server.CreateObject("工程名.类名")
flag=dcss.a
if flag=0 then
response.write "底层驱动调用成功"
else
response.write "底层驱动调用失败"
response.end
end if

不知道你明白了没有
请参考
http://www.csdn.net/develop/read_article.asp?id=19214
http://www.ourfly.com/bbs/dispbbs.asp?boardID=4&ID=150
利用AspcnUP.dll组件进行文件上传
提供组件源码(vb写的),有丰富的例程,比较不错
online 2003-11-28
  • 打赏
  • 举报
回复
这个dll应该是标准的dll,就先在类中声明函数,然后,
重新用vb写要暴露给web调用的接口。一般用public function或者public sub
如下
class中
Public Function datasource() As Variant
datasource = "driver={sql server};server=yang;uid=sa;pwd=; database=dcss"
End Function

web页面中
set dcss=server.CreateObject("工程名.类名")
oconn=dcss.datasource()
application("strconn")=oconn
rainstormmaster 2003-11-28
  • 打赏
  • 举报
回复
我注意到你有这句话:
即没法通过引用加进来,也没法注册

这说明dll文件为标准的dll,需要在类中声明该函数a,格式类似下面:
Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long


Declare Function a Lib "库文件名" Alias "别名" (参数1,参数2) As 返回值类型(long居多)


1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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