Login  
Search All Forums
Dart Home | PowerTCP FTP for ActiveX | Custom Development Reply | PowerTCP FTP for ActiveX Topics | Forums   
AuthorForum: PowerTCP FTP for ActiveX
Topic: Error 430: Automation Not Supported
User310

Posts: 3
Member Since: 11/27/01
posted January 18, 2002 9:34 AM

I have a currently working VB6 app using the FTP Tool. I tried making a few minor non-FTP changes and recompiling it, and suddenly it no longer works. The FTP tool is properly installed and registered on the dev machine, although this is not the same machine that compiled the original app.

The error that I get, as soon as I attempt to run the app, is:

430 - Object does not support Automation or does not have expected interface

I've been programming using COM, OLE and Automation for years, and have never had this much trouble. I have five other machines that this works fine on, none of them having a development environment, but it refuses to work on my production NT4 server!
K M Drake



From: Utica, NY USA
Posts: 3406
Member Since: 07/14/00
posted January 18, 2002 10:58 AM


Hi,
Sorry, I do not have any recommendations based on the information supplied. If the samples work correctly, I suggest pursuing this through our Support Program (support@dart.com).
-ken

K M Drake
Dart Tech Support
User200

Posts: 23
Member Since: 09/09/01
posted February 16, 2002 8:46 PM

I have had the same thing. I have created an ActiveX.dll that I share between several applications. That ActiveX.dll uses the dartstreams, dartstrings and dart http.

The applications on machine where the ActiveX.dll was compiled work fine but when they are deployed to another machine the applications that share it all report that same error 430:... when they try to

set x = new myActiveX.blahblah 

where myActiveX is the ActiveX dll that uses the dart stuff and blahblah is a class in it.

I am curious if you think this should go to your $upport program too.

User200

Posts: 23
Member Since: 09/09/01
posted February 17, 2002 10:44 AM

Here is some meat to chew.

Created ActiveX.dll "AX" as follows
'AXClass
Option Explicit
Private FirstTextStr As String

Private Sub Class_Initialize()
  FirstText = "First Text"
End Sub

Public Property Get FirstText() As String
  FirstText = FirstTextStr
End Property

Public Property Let FirstText(ByVal vNewValue As String)
  FirstTextStr = vNewValue
End Property

Then a a Standard exe test app "AXTest" as follows
single command button form "Test One"

'TestApp.frm
Private Sub TestBtn_Click()
  Dim ax As AXClass
  Set ax = New AXClass
  Dim axText As String
  axText = ax.FirstText
  MsgBox "First Test:" & axText
  
End Sub

packaged and deployed from Windows NT where Vis Studio is to Win2k for deployment testing.

Installed AX and AXTest on Win2k.

Test Button clicked "First Test:First Text" displayed...ok?

See next message for second test.
User200

Posts: 23
Member Since: 09/09/01
posted February 17, 2002 10:46 AM

Then added DartStrings to AX as follows:

Option Explicit
Private FirstTextStr As String
Private SecondTextDStr As DartStrings

Private Sub Class_Initialize()
  FirstText = "First Text"
  Set SecondTextDStr = New DartStrings
  SecondTextDStr.Add "Second Text"
End Sub

Public Property Get FirstText() As String
  FirstText = FirstTextStr
End Property

Public Property Let FirstText(ByVal vNewValue As String)
  FirstTextStr = vNewValue
End Property

Public Property Get SecondText() As String
  SecondText = SecondTextDStr.Item(1)
  
End Property

Public Property Let SecondText(ByVal vNewValue As String)
  SecondTextDStr.Item(1) = vNewValue
  
End Property

and added second button "Test Two" to TestAX as follows:

Private Sub Test2Btn_Click()
  Dim ax As AXClass
  Set ax = New AXClass
  Dim axText As String
  axText = ax.SecondText
  MsgBox "Second Test:" & axText

End Sub

packaged and deployed to Win2k machine ensuring the DartObjects.dll and DartSock.dll are in the CAB.

Guess what happens when I hit the Test buttons now?

Right, Error 430: Automation Not Supported

Please advise how we use these Dart objects and deploy them properly.
User200

Posts: 23
Member Since: 09/09/01
posted February 17, 2002 12:27 PM

Ok more meat.

I then created two standard exe's one with and one without the DartStrings as described for the ActiveX.dll called AX2Example and AX3Example, this time with the DartStrings property in AX3Example.

packaged and deployed and installed on win2k machine as in the previous examples.

Guess what, no 430 error and the standard exe's worked fine. Because they are compiled in instead of references to references as with the ActiveX.dll, they function normally.

However, this brings up the philosophical discussion...protect the authors from exploitation...I totally concur, but what are the limits? A tool that is designed not to be used as a reusable component means it impacts on my design. I must now build into each application its own set of functions that use Dart objects, instead of a sharable library. My object oriented self says...oh come on! I must duplicate code in every application in my suite instead of that sharable Library...increasing my maintenance costs and reducing my reliability.

So it comes to the point where I must decide is the ease of use of these tools worth the bad design they require and is the time I save in useing them worth the time lost in maintaining the code that uses them?

I hope there is a way to use the Dart dlls in sharable libraries because that is the right thing to do.
K M Drake



From: Utica, NY USA
Posts: 3406
Member Since: 07/14/00
posted February 18, 2002 1:26 PM


Hi,
Yes, I recommend pursuing this further through support@dart.com.
Below I have code for a simple dll that references DartStrings, and a Project that references this dll. The compiled Project1 exe works fine for me.
-ken

'**DSTest Class - dll references DartSock.dll**
Option Explicit
  Private ds As DartStrings

Private Sub Class_Initialize()
  Set ds = New DartStrings
  ds.Delimiter = vbCrLf
  ds.Add "string 1"
  ds.Add "string 2"
End Sub

Public Property Get List() As String
  List = ds.All
End Property

'**Project 1 - a button, text box and ref to above dll**
Private Sub Command1_Click()
  Dim test As New DSTest
  Text1.Text = test.List
End Sub

K M Drake
Dart Tech Support
 
Reply | PowerTCP FTP for ActiveX Topics | Forums   
This site is powered by PowerTCP WebServer Tool PowerTCP WebServer for ActiveX