Calling a COM dll in a plugin

View: New views
3 Messages — Rating Filter:   Alert me  

Calling a COM dll in a plugin

by JeromeZ :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi everybody,

we developped a dll written in VB6.0

We offer it to independant software creators to allow them to establish an easy connectivity with some industrial instruments.

This dll is a COM object, that is very correctly used by Excel, Access, Windev, VB,...

Some of these developers are using 4D and we have to help them to interface this DLL.

When they use 4D's DLL Wizard in order to generate a plug-in, the only functions they see are "DllCanUnloadNow, DllGetClassObject, DllRegisterServer and DllUnregisterServer".

My questions are :
- is this normal ? (guess no :-)
- how to create the plug-in ?
- do we have to change our dll ? In which way ? We don't want to code in C/C++

Thanks for you prompt help, guys !

Cheers,
Jérôme

Re: Calling a COM dll in a plugin

by Michael Bond-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, Mar 11, 2008 at 5:12 PM, JeromeZ <trasherigne@...> wrote:

>
> Hi everybody,
>
> we developped a dll written in VB6.0
>
> We offer it to independant software creators to allow them to establish an
> easy connectivity with some industrial instruments.
>
> This dll is a COM object, that is very correctly used by Excel, Access,
> Windev, VB,...
>
> Some of these developers are using 4D and we have to help them to interface
> this DLL.
>
> When they use 4D's DLL Wizard in order to generate a plug-in, the only
> functions they see are "DllCanUnloadNow, DllGetClassObject,
> DllRegisterServer and DllUnregisterServer".
>
> My questions are :
> - is this normal ? (guess no :-)
> - how to create the plug-in ?
> - do we have to change our dll ? In which way ? We don't want to code in
> C/C++
>
> Thanks for you prompt help, guys !
>
> Cheers,
> Jérôme

What you have is normal for a COM DLL and the DLL wizard doesn't
support it. As far as I see it you have a couple of options.

1. Rewrite the whole thing in C++
2. Write a wrapper in C++ ( you can create a proper plugin then)
3. Use the Ole4D plugin to call the COM functions.
4a. Use the 4D Macro pack to create vbs scripts.
4b. Write vbs scripts by hand and launch them with Launch External Process.

Michael Bond
**********************************************************************
4D Plugins hosted by 4D, Inc.                      http://www.4D.com/


    Did you know?  The 4D Partner Program now gives you
    access to Hotfix releases as soon as they are available!
    To learn more, go to http://www.4D.com/support/partner.html

To Unsubscribe:                      mailto:4D-Plugins-off@...
***********************************************************************


Re: Calling a COM dll in a plugin

by Miloslav Bystricky :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 11.3.2008, at 18:12, JeromeZ wrote:

> My questions are :
> - is this normal ? (guess no :-)
> - how to create the plug-in ?
> - do we have to change our dll ? In which way ? We don't want to  
> code in
> C/C++
>
> Thanks for you prompt help, guys !



We did it already with some DLL (similar topic - accessing proprietary  
hardware), but it cannot be done with Plugin Wizard. If you have an  
example code of calling your dll from VB, it is easy to create a 4D  
plugin template. There are few tricky points - mapping different kind  
of variables, ensuring that 4D gets processing time to handle client -  
server connection etc.


In the end, what needs to be done is a C header file.

Peter Bozek
http://www.inforce.sk

**********************************************************************
4D Plugins hosted by 4D, Inc.                      http://www.4D.com/     
   

    Did you know?  The 4D Partner Program now gives you
    access to Hotfix releases as soon as they are available!
    To learn more, go to http://www.4D.com/support/partner.html

To Unsubscribe:                      mailto:4D-Plugins-off@...
***********************************************************************