?
Solved

429 ActiveX error when running a VB6 app that calls a .Net (2.0 framework) dll from a Table PC running WinXP Pro SP2 Tablet PC edition

Posted on 2007-07-23
6
Medium Priority
?
347 Views
Last Modified: 2013-11-29
When I try to access a method from a com enabled .Net app from a VB6 program.  I get Error 429 ActiveX component can't create object.  This only occurs on a Table PC running WinXP Pro Table PC edition SP2.

I tried to isolate the problem by making the simplest program possible so I create VS2005 VB project that has one method.  Here is the code I used:

<ComClass()> Public Class InteropTest
    Public Function ShowDialog() As Boolean
        MsgBox("Hello from .Net 2.0!")
    End Function
End Class

I built the project and then created a VB6 standard EXE with a command button on the form and a reference set to the .Net dll.  Here is the code for the VB6 project:

Private Sub Command1_Click()
    Dim st As SimpleTest.InteropTest
    Set st = New SimpleTest.InteropTest
    st.ShowDialog
End Sub

That's as simple as it gets, right?

I then used Installshield to create the installation (I don't know how to get the tlb file registered properly without using Installshield).  I tested this on several non-tablet pcs and the program works as expected.  I click the button and I get a message box that says 'Hello from .Net 2.0!'

If I run this from the Table PC, I get the 429 error.

Any help would be greatly appreciated
0
Comment
Question by:DalexSupport
  • 3
  • 2
6 Comments
 
LVL 18

Expert Comment

by:Priest04
ID: 19550394
Well, in windows environment, a com dll needs to be either registered or loaded into memory. I don't know how this works on Tablet PC, but i Believe that you need first to load it in memory in order to use it.

Goran
0
 
LVL 41

Expert Comment

by:graye
ID: 19552438
I concur with Priest04...

I believe you're thinking too hard... you should just concentrate on registering the COM DLL on the Tablet PC
0
 

Author Comment

by:DalexSupport
ID: 19556220
I agree this is a registration issue.  What I don't understand is why the .Net dll won't register on the Tablet PC edition of XP Pro but it registers without fail on every notebook and desktop pc.  

How do I register a .Net dll?  I need to register the tlb file but regsvr32 doesn't work with tlb files.  If I try regsvr32 on the .Net dll, I get a message that the file can't be registered because no entry point could be found.  

I explored the registry of the tablet pc and a pc that registered properly and found the entries that the tablet pc did not have.  I exported the registry entries from the pc that did register properly and imported those entries into the tablet pc and then the VB6 app communicated correctly with the .Net dll.  

Could this be an Installshield issue?  Is the registration process for dlls different on a tablet pc?

I can get by with importing the registry entries, but it seems to me there should be an easier solution.
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 18

Expert Comment

by:Priest04
ID: 19558092
What those registry keys refer to? Are they specific to registering this dll? When you receive the entry point not found error, does at that moment application start to work (cause I believe that it stills load it in memory, so maybe then it becomes available to your vb6 app). I am sorry, but I never worked with tablet PC, so I cant tell you how this OS works. The error 429 means that this dll is not loaded in memory, so you cant use it. Where do you put this dll on target OS. Try changing it to system32 (if it exists, as I said, not familiar with Tablet PC OS)

Goran
0
 

Author Comment

by:DalexSupport
ID: 19562308
The registry keys are specific to the .Net dll.  When I recieve the entry point not found error, the application still does NOT work.  

For some reason, on non-tablet pcs, these registry entries are created with the installation.  On the table pcs, thery are not created.  I am starting to believe this may be an Installshield issue where Installshield isn't registering properly, but since I don't have a tablet pc of my own to use to test this, I am limited as to what I can do to test this.  (I have a customer with one that I hook up with on NetMeeting when his pc is available which is why my responses are not very fast).  

I put all files including the dll in the same folder as the exe file that calls it (Call_dotNetFromVB6.exe).  I have even created a Call_dotNetFromVB6.exe.local file to try to circumvent 'dll hell' issues hoping that may resolve the problem but that hasn't worked either.

I haven't had access to the table pc to test putting the dll in system32 since your last post so I haven't tested that yet but I don't have much faith that that will matter.  

Since I can manually register this by adding branches to the registry, I am more and more thinking this is an Installshield issue with registering dlls (the dlls after all do register on non-tablet pc editions of WinXP).  I haven't used EE very much so I don't know all the proper procedures.  Should I post another question and associate this with an Installshield zone issue?

0
 
LVL 18

Accepted Solution

by:
Priest04 earned 1500 total points
ID: 19563476
Since the question you are asking is related to installers, then it would be the best to have one in section specific to installers and in section for Tablet PC's (you can have one question in 3 sections.

Goran
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The SignAloud Glove is capable of translating American Sign Language signs into text and audio.
If you are a mobile app developer and especially develop hybrid mobile apps then these 4 mistakes you must avoid for hybrid app development to be the more genuine app developer.
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…
Progress

850 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question