[DUG] Com support
Conor Boyd
Conor.Boyd at trimble.co.nz
Tue Jul 31 11:26:56 NZST 2007
You're right about not needing to manually register a COM exe, I had
forgotten that.
As you've probably realised from the error message, Regsvr32 is purely
for DLLs and OCXs. However, for the purposes of clarification, as I
said before you can explicitly register an EXE by adding the /regserver
param to a command line to the exe (e.g. this may be useful for
installers).
However, this ramble of mine is not helping with your bigger problem.
I also don't think the Register Type Library menu option in the IDE is
available for COM exes.
Your "Unable to rename..." error - the .tlb isn't read-only by any
chance?
Have you got a copy of Visual Studio? If so, try running OLEView and
checking whether your COM server seems to be correctly registered, and
also that it's the correct exe it's pointing to.
Hope that's some help, not sure what else to suggest immediately.
C.
-----Original Message-----
From: delphi-bounces at delphi.org.nz [mailto:delphi-bounces at delphi.org.nz]
On Behalf Of Robert martin
Internet back up now - what a nightmare (on top of this nightmare),
Telecom changed our password and an ex staff member removed our router
instructions so we had to reset the unit. Then it just wouldn't
connect. Turned out we were cutting and pasting a space in with the
user name. Arrrggggghhh (3hrs down the drain).
In answer to your questions.. The error reported is 'Interface not
supported'. This happens when we try to create the class. As far as I
know the _Tlb file is being compiled it, it is part of the project.
We have never needed to manually register the exe (it has always worked
perfectly at all our sites). However if I do try to manually register
it (using regsvr32) I get 'The module ..... was loaded but the
entry-point dllRegisterServer was not found. Make sure that ... is a
valid dll or OCS file and try again.'.
However there is something weirder happening now. The issue was
reported bay a client we upgraded. I tested it on my dev machine which
replicated the problem. However another Dev machine here with an older
copy of files tested fine. I found my machine was missing the .tlb
file. This fixed the 'Type library' missing from the menu but didn't
fix the problem on my machine.
I have just found that the exe created by may machine fails on my
machine but runs on the other dev machine. If I go back to my old dev
files (missing the .tlb file) I can no longer access the 'type library'
menu but the files compiled still work on the other Dev machine.
I think during my attempts to fix the situation I have broken something
else on my machine. The 'Register type library' option is greyed out on
my 'type library' screen and when I try and save my project I get....
'Unable to rename 'C:\.......\Client\ChreosClient.tlb' to
'C:\.......\Client\_History\ChreosClient.tlb.~1~' '
There is no 'C:\.......\Client\_History\ChreosClient.tlb.~1~' file
(although there are lots of other units). I can manually copy the file
and create it as listed above. However I then get the same error with
.~2~. I have had this problem in the past and it went away (I suspect
with the removal of the .tlb file. This prevents me saving the project
and any changes to the _tlb.pas / .tlb files.
Sorry about the long story but this is driving me up the wall !
Myles Penlington wrote:
> Is the *_TLB.pas compiled into the project? And has the exe been
> registered? What errors are reported by COM when attempt to access the
> COM objects?
> Myles.
[snip]
More information about the Delphi
mailing list