VB调用DLL中的函数
我想实现这样一个功能,我有一个XML文件格式如下
<Field cnName="帐号" fieldType="varchar" fieldLen="40" fieldScale="" ></Field>
<Field cnName="账户名称" fieldType="varchar" fieldLen="80" fieldScale="" ></Field>
<Field cnName="部门 " fieldType="varchar" fieldLen="4" fieldScale="" ></Field>
<Field cnName="柜员组 " fieldType="char" fieldLen="2" fieldScale=""></Field>
cnName= 字段名称 fieldType=字段类型 fieldLen=字段长度 fieldScale=小数点的位数
我想把XML的各个字段属性读入保存到数组中,然后把数组作为参数传递给Activex DLL中函数,VB通过调用该函数,把各个字段成一个模板(只要把字段一次传给该函数的参数即可)
DLL名称为makerdf.dll 其中类为 IdeaRDF
函数为AppendField(name As String,desc As String, vartype As Integer, Length As Integer, dec As Integer, impliedDec As Boolean, parameter As String))
name //字段名称>
desc //字段说明>
vartype // 1-字符 2-数字 5-日期 时间 0-无效类型>
offset //偏移 固定为0>
length //长度>
dec /小数位数> impliedDec //如果源数据包括小数位取false 不包括取true>
parameter //格式掩码 如日期型的格式“年年年年月月日日”
我写的程序如下:(只写了读入XML,和引用DLL部分,调用部分麻烦各位大师帮忙)
程序在引入DLL部分报错了,就是Activex 部件无法创建对象
Dim mrdll As IdeaRDF
Private MyObj As Object
'这个函数用来读取xml文件中的字段属性
Private Function GetFields(xmlFile As String) As String
Dim oXmlDoc As DOMDocument
Dim oXmlNodes As IXMLDOMNodeList
Dim i As Long
Dim j As Long
Dim NodeLength As Long
Dim FieldName() As String
Dim FieldType() As String
Dim FieldLen() As Long
Dim FieldDec() As Long
Set oXmlDoc = New DOMDocument
oXmlDoc.Load xmlFile
Set oXmlNodes = oXmlDoc.documentElement.selectNodes(".//Field") 'Field集合
NodeLength = oXmlNodes.Length - 1
ReDim FieldName(NodeLength)
ReDim FieldType(NodeLength)
For i = 0 To NodeLength
FieldName(i) = oXmlNodes.Item(i).Attributes(1).Text '字段名称
FieldType(i) = oXmlNodes.Item(i).Attributes(2).Text '字段类型
'循环Field集合 , Attributes(1).text是一个Field中第二个属性的值,Attributes(2).text是一个Field中第三个属性的
Next i
'调用DLL中的AppendField
Set oXmlNodes = Nothing
Set oXmlDoc = Nothing
End Function
Private Sub Command1_Click()
Dim fileName As String '文件
Dim sXml As String
Dim Stype As String
Dim sTxt As String
Dim hFile As Long
'获取xml中的字段名称
fileName = "d:\KNA_DPAC_20100308.xml"
End Sub
Private Sub Form_Load()
Set MyObj = CreateObject("makerdf.IdeaRDF")
End Sub