"cgoldfarb" wrote in message news:5982194@discussion.autodesk.com...
> Curiously, how Bentley extensions could use your
> code? Do you own their code so that you can modify
> and re-compile in order for Bentley extensions use
> you ActiveX DLL?
Basically all I need to do is make sure that my dll is in a specific folder
that the Bentley suite expects it to be. Just updating the dll in that
folder allows the latest changes to my dll to be reflected in AutoCAD.
No, ActiveX is not folder/path/location depended. a process that calls an
ActiveX DLL accoring to Windows registry, not the DLL file's location. The
ActiveX DLL has to be registered with Regsvr32.exe before it can be seen by
other application. On your development computer, when you compile the
ActiveX DLL, VB6 does the registering for you. When you deploy the DLL to
other computer, you must register it with Regsvr32.exe, while the DLL file
can be place in different folder on different computer. So, that could a a
reason that you do not know which DLL is loaded into which.
> If you really do is having some your Acad VBA code
> that calls Bentley's DLL and your DLL, or even your
> DLL has reference to Bentley extensions, then
> your DLL is used in Acad.
I'm not entirely sure (having been on this for about a week now - and the
guy I replaced is gone!) but I don't know of any VBA code that we own. I
believe Bentley may have some VBA code, in fact I'm sure of it, but the
Bentley suite is huge and it includes proprietary applications in addition
to the AutoCAD extensions (plugins?)
OK, with certain tricks, VB ActiveX DLL can be loaded into an app process
for certain location without run Regsvr32.exe in advance. Thta maybe is how
your DLL gets loaded into Bentley extensions. Are you writning yuor DLL by
implementing interfaces required by those Bentley extensions? If not, I just
could not think how the extension can use your DLL.
> I really doubt your DLL can be instantiated inside
>Bentley extensions without recompile their code.
That may be. I hope I don't sound too stupid, but all I know is that I can
make a change to the dll, copy the dll to a specific folder, and then run
AutoCAD, and the changes show up in AutoCAD.
> I also assume the bentley extensions yu ae talking is acad
> addin (thus "extensions"), which run inside Acad, not a
> stand-alone application, otherwise, you would not talking
> Acad debugging here, right? You may want to describe
> your situation a bit more.
Exactly. Sorry for the confusion. Bentley does have alot of separate
applications that install, but the core capabilities are extensions/plugins
to AutoCAD itself, so there's things like new toolbars and menu items, that
type of thing.
> Anyways, debugging ActiveX DLL is a bit tricky,
> comparing to exe, you need to run the code in an EXE
> app (such as Acad) to debug. As long as you know
> where your code in run and the correct EXE is launched
> by VB6 bt hitting F5, there should not have much
> difficulties to get the break point.
Thanks. This is what I am almost 100% sure is happening; Basically, my dll
is instantiated by Bentley plugins, which run in AutoCAD. The only way I am
able to see my dll forms and run my dll *.bas methods are by starting
AutoCAD and running a Bentley command down at the bottom of AutoCAD (I type
"CATT" in the command window, am prompted to select a component on the
drawing, and -voila - my custom dll forms are displayed or my dll methods
are fired.
Maybe it's this extra layer that's causing the problem with the hookup
between AutoCAD exe process and the dll debugging instance.
In any case I just want to say thanks again to everyone who has responded.
You guys are just awesome.