注册 登录
编程论坛 VB6论坛

vb 编写 DLL,要求DLL根据数据划出柱状图,将并图插入到 Html 中,生成 Html文件。

张六先生 发布于 2022-10-15 15:15, 2928 次点击
我要用 VB 编写了一个 DLL 文件,要求 DLL 根据计算出的数据,划出 柱状图或曲线图,并将图片插入到用于显示的 Html文件中,并由 DLL 生成这个 Html 文件,以便于网站调用。

请各位专家指条明路。谢谢!
16 回复
#2
张六先生2022-10-15 15:26
补充上述提问:  DLL 生成的 Html 文件的 字符,如何生成 <UTF-8>字符

目前 VB 用的字符是 GB2312,在生成 Html 后,显示时是“乱码”。现在需要 DLL 生成 Html 时,直接生成 UTF-8 码。

请各位专家指条明路。谢谢!
#3
yuma2022-10-16 17:47
回复 2楼 张六先生
设置程序执行的编码

<meta charset="GB2312">

 或者

<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
#4
张六先生2022-10-18 09:12
回复 3楼 yuma
感谢回复!

我的问题是由原来的 GB2313 码,生成 UTF-8 码文件,且在生成 Html 文件的同时生成。
#5
张六先生2022-10-18 12:57
拜托各位专家,请指条明路。谢了!
#6
yuma2022-10-18 18:00
回复 4楼 张六先生
1.VB6写入带BOM的utf-8文本文件

工程--引用--勾选Microsoft ActiveX Data Object 2.5 Library或更高的版本

Private Sub Form_Load()
Dim adostream As New ADODB.Stream
With adostream
.Type = adTypeText
.Mode = adModeReadWrite
.Charset = "utf-8"
.Open
.Position = 0
.WriteText "测试文字369"
.SaveToFile "D:\test.txt", adSaveCreateOverWrite
.Close
End With
Set adostream = Nothing
End Sub


2.VB6写入无BOM的utf-8文本文件

工程--引用--勾选Microsoft ActiveX Data Object 2.5 Library或更高的版本

Private Sub Form_Load()
  Dim WriteStream As Object, BinSt As Object
  Dim name As String
  Dim nameto As String
  Set WriteStream = CreateObject("ADODB.Stream")
  Set BinSt = CreateObject("ADODB.Stream")
  nameto = "D:\test.txt"
  With WriteStream
    .Open
    .Charset = "UTF-8"
    .Type = 2               'adTypeText  (文本)
    .WriteText "测试文字369"
    .Position = 3
  End With
  With BinSt
    .Open
    .Type = 1              '(字节)
  End With
  WriteStream.CopyTo BinSt '数据复制
  With BinSt
    .SaveToFile nameto, 2   '保存文件
    .Close
  End With
  WriteStream.Close
  Set WriteStream = Nothing
  Set BinSt = Nothing
End Sub

[此贴子已经被作者于2022-10-18 18:17编辑过]

#7
张六先生2022-10-19 11:17
感谢! 关于 UFT-8 的问题,我试一下。

关于 插图 的问题,烦请专家指引。 拜托!
#8
yuma2022-10-19 17:58
你这个项目要造好几个轮子:
1.生成 柱状图或曲线图,饼形图就别想了。
2.保存图片的代码
3.VB计算图片的base64编码,用来在html中引用(html显示图片的方法有两种:1.引用网络地址中的图片2.使用base64编码显示图片)。
4.html可以执行gb2313编码可以不乱码,我在3楼讲方法了。你非要写utf8编码的,我在6楼提供代码了。
5.dll中都是函数无法包含事件,通过regsvr32注册加载进系统也没有任何动作,只能由第三方程序调用函数执行。

看你什么都不会,轮子还是需要你自己造。

[此贴子已经被作者于2022-10-19 18:08编辑过]

#9
yuma2022-10-19 18:15
突然想到你的需求要画图,那肯定要用到控件显示图形,dll中没法用控件,所以用VB的dll是无法做出来的。
#10
张六先生2022-10-20 13:48
感谢。我也查到DLL没法用控件显示图形,但仍然不死心,想听听专家的意见。

再继续想办法吧。。画图的功能是必须要有的,方法上要想想了。。。。。
#11
约定的童话2022-10-20 21:36
回复 10楼 张六先生
开发,VB局限性很大
#12
yuma2022-10-22 17:30
回复 11楼 约定的童话
用web语言写函数调用比较方便。比如php
#13
yuma2022-11-01 18:22
回复 10楼 张六先生
不要开发成dll,用Php写函数调用就能完成绘图功能。
#14
suzhanpeng2022-11-02 14:00
开发ocx控件符合你的要求。
#15
yuma2022-11-02 17:35
回复 14楼 suzhanpeng
楼主的需求是网站调用。
#16
冬瓜汤2023-02-21 15:57
Owc11最后更新版可以满足你的需求,只是web权限是个问题
#17
yuma2023-02-21 17:34
网页程序调用dll,是做不到的。浏览器和系统的安全问题。

网页调用网页函数完成绘图是可以的。
1