PRB: "Error Loading DLL" When Returning User Defined Data Type from VB COM Object
ID: Q224397
|
The information in this article applies to:
-
Active Server Pages
-
Microsoft Visual Basic Learning, Professional, and Enterprise Editions for Windows, versions 5.0, 6.0
-
Microsoft Internet Information Server versions 4.0, 5.0
SYMPTOMS
When returning an Array or Collection of user defined data types (UDTs) from a Visual Basic COM object to Active Server Pages (ASP), the following error may occur:
Microsoft VBScript runtime error '800a0030'
Error Loading DLL: TestMethod
CAUSE
User defined data types are not supported in the current version of ASP.
RESOLUTION
Since ASP does not support UDTs, you can work around this by creating a new class to handle the data in place of the UDT and setting the instancing property to PublicNotCreateable. This will ensure that you can pass the necessary information to and from ASP, as well as that the class cannot be created outside of the DLL.
STATUS
This behavior is by design.
MORE INFORMATION
Steps to Reproduce Behavior
- Create a Visual Basic ActiveX DLL Project called "VBUDTPrj."
- Add class module called "VBUDTObj."
- Define a user defined data type as follows:
Public Type TestUDT
strName as String
strDept as String
End Type
- Implement the following method:
Public Function TestMethod()As Variant
Dim rtnArray(10) As Variant
Dim intCnt As Integer
For intCnt = 0 To 9
Dim udtTestData As TestUDT
udtTestData.strName = "Name"
udtTestData.strDept = "Department"
rtnArray(intCnt) = udtTestData
Next
TestMethod = rtnArray
End Function
- Create an ASP Page that calls this Method:
<%
Dim objTest, udtArray, udtData
Set objTest = Server.CreateObject("VBUDTPrj.VBUDTObj")
udtArray = objTest.TestMethod()
udtData = udtArray(1)
Response.Write( "Name = " & udtData.strName & "<BR>" )
Response.Write( "Dept = " & udtData.strDept & "<BR>" )
%>
- Run the ASP page and the following error occurs:
Microsoft VBScript runtime error '800a0030'
Error Loading DLL: TestMethod
REFERENCES
Refer to the TYPE statement in the Visual Basic Documentation.
Additional query words:
Keywords : kberrmsg kbASP kbASP400 kbCOMt kbVBp500 kbVBp600 kbGrpASP kbiis400 kbiis500
Version : WINDOWS:5.0,6.0; winnt:
Platform : WINDOWS winnt
Issue type : kbprb