From: Nicolas CHARVIN (Nicolas.Charvin_at_univ-savoie.fr)
Date: Tue Mar 15 2005 - 11:30:14 CST

>Nicolas,
> One thing you need to double-check here is that the DLL you create
>(the compiled file will end up being named gmplugin.so when it's finished)
>needs to export several functions as external entry points.
>These functions are:
> VMDPLUGIN_init()
> VMDPLUGIN_register()
> VMDPLUGIN_register_tcl()
> VMDPLUGIN_fini()

You were right!
2 problems in one:

1) First, I forgot -DVMDPLUGIN_EXPORTS option for the compilation. Stupid me!
The correct command is:
bcc32 -WD -DWIN32 -DVMDPLUGIN_EXPORTS gmqplugin.c

2) Then, I use tdump.exe to look at the exported function
tdump -ee gmqplugin.dll
                    Display of File GMQPLUGIN.DLL

EXPORT ord:0003='_vmdplugin_fini'
EXPORT ord:0001='_vmdplugin_init'
EXPORT ord:0002='_vmdplugin_register'

Yes, the first underscore should not be there!
Some Googling , and I find that I should use a gmqplugin.def file, to
create alias at link time.

gmqplugin.def:
  EXPORTS
  vmdplugin_fini = _vmdplugin_fini
  vmdplugin_init = _vmdplugin_init
  vmdplugin_register = _vmdplugin_register

Then:

tdump -ee gmqplugin.dll
                    Display of File GMQPLUGIN.DLL

EXPORT ord:0004='___CPPdebugHook'
EXPORT ord:0003='_vmdplugin_fini'
EXPORT ord:0001='_vmdplugin_init'
EXPORT ord:0002='_vmdplugin_register'
EXPORT ord:0005='vmdplugin_fini'
EXPORT ord:0006='vmdplugin_init'
EXPORT ord:0007='vmdplugin_register'

And finally, VMD recognize my plugin at startup!
It still doesn't load my molecule (vmd > ERROR) Could not read file
D:/ncharvin/t/tutu/config.gmq) , and I don't know why (remember, it works
fine under linux), but it should be a bug in my plugin, so I'll keep on
investigate

Hope this helps someone using Borland tools
Thanks

nicolas

--
Nicolas.Charvin_at_univ-savoie.fr
LMOPS - Lab. Matériaux Organiques à Propriétés Spécifiques
Bât IUT - Université de Savoie
73376 LE BOURGET DU LAC CEDEX
Tel: 04-79-75-86-53
http://www.univ-savoie.fr/labos/lmops