Thread overview
HtmlHelp and DMC
May 13, 2003
W³odzimierz Skiba
May 14, 2003
Walter
May 14, 2003
W³odzimierz Skiba
May 14, 2003
Walter
May 14, 2003
gf
May 13, 2003
Hi,

I'm trying to link with htmlhelp.lib. First I created htmlhelp.lib from hhctrl.ocx as I did for Borland compiler. It works fine.

 C:\dm\bin\implib dmc\wingui\Lib\htmlhelp.lib C:\WINNT\system32\hhctrl.ocx
 Digital Mars Import Library Manager Version 7.6B1n
 Copyright (C) Digital Mars 2000.  All Rights Reserved.
 Input is a Windows NT DLL file 'HHCTRL.OCX'.
 Output is a Windows NT import library.
 Digital Mars Import Library Creator complete.

then I tried link my application with it as I did for Borland and other various compilers. I needed htmlhelp.h so I installed "HTML Help Workshop" from Microsoft. Application compiled fine, but when linking it can't resolve:

  dmc\wingui\lib\engine.lib(engine)
   Error 42: Symbol Undefined _HtmlHelpA@16

I tried implib with and without "/s" switch but it doesn't changed anything. Anybody succesfully use HtmlHelp im dmc compilations ? Any hint ?

ABX
May 14, 2003
"W³odzimierz Skiba" <abx@abx.art.pl> wrote in message news:b9rj1o$26f5$1@digitaldaemon.com...
>   dmc\wingui\lib\engine.lib(engine)
>    Error 42: Symbol Undefined _HtmlHelpA@16
>
> I tried implib with and without "/s" switch but it doesn't changed anything. Anybody succesfully use HtmlHelp im dmc compilations ? Any hint
?

www.digitalmars.com/faq.html@sysimport

should be helpful.


May 14, 2003
"Walter" <walter@digitalmars.com> wrote in news:b9sg1o$3j1$1@digitaldaemon.com:
> www.digitalmars.com/faq.html@sysimport
> should be helpful.

Thanks, but it does not solved problem, probably due to limitations in IMPLIB. I made following two lines:

  C:\dm\bin\implib /s dmc\wingui\htmlhelp.lib C:\WINNT\system32\hhctrl.ocx
  C:\dm\bin\implib dmc\wingui\htmlhelp.lib dmc\htmlhelp.def

And it worked without any errors during linking

  C:\dm\bin\implib /s dmc\wingui\htmlhelp.lib C:\WINNT\system32\hhctrl.ocx
    Digital Mars Import Library Manager Version 7.6B1n
    Copyright (C) Digital Mars 2000.  All Rights Reserved.
    Input is a Windows NT DLL file 'HHCTRL.OCX'.
    Output is a Windows NT import library.
    Digital Mars Import Library Creator complete.
  C:\dm\bin\implib dmc\wingui\htmlhelp.lib dmc\htmlhelp.def
    Digital Mars Import Library Manager Version 7.6B1n
    Copyright (C) Digital Mars 2000.  All Rights Reserved.
    Output is a Windows NT import library.
    Digital Mars Import Library Creator complete.

where my htmlhelp.def is:
  LIBRARY hhctrl
  EXETYPE NT
  SUBSYSTEM WINDOWS
  EXPORTS
  _HtmlHelpA@16 = HtmlHelpA

But when my application starts it says it can't find hhctrl.dll. So I changed:
  LIBRARY hhctrl
to
  LIBRARY hhctrl.ocx
and then it reports unexpected dot in LIBRARY syntax.
The solution could be to rename hhctrol.ocx to hhctrl.dll but it is:
1) not nice to ask every user to do this favor my application by hand,
2) not nice to distribute since it is covered by MS license.
3) not nice to do it automagically on every platform since hhctrl.ocx is registered
component of system

So solution has to be found on IMPLIB side. Any hints ? TIA

ABX
May 14, 2003
"Walter" <walter@digitalmars.com> wrote in news:b9sg1o$3j1$1@digitaldaemon.com:

> 
> "W³odzimierz Skiba" <abx@abx.art.pl> wrote in message news:b9rj1o$26f5$1@digitaldaemon.com...
>>   dmc\wingui\lib\engine.lib(engine)
>>    Error 42: Symbol Undefined _HtmlHelpA@16
>>
>> I tried implib with and without "/s" switch but it doesn't changed anything. Anybody succesfully use HtmlHelp im dmc compilations ? Any hint
> ?
> 
> www.digitalmars.com/faq.html@sysimport
> 
> should be helpful.



Walter meant "http://www.digitalmars.com/faq#sysimport"
May 14, 2003
"W³odzimierz Skiba" <abx@abx.art.pl> wrote in message news:b9sp9l$c6d$1@digitaldaemon.com...
> where my htmlhelp.def is:
>   LIBRARY hhctrl
>   EXETYPE NT
>   SUBSYSTEM WINDOWS
>   EXPORTS
>   _HtmlHelpA@16 = HtmlHelpA
>
> But when my application starts it says it can't find hhctrl.dll. So I
changed:
>   LIBRARY hhctrl
> to
>   LIBRARY hhctrl.ocx
> and then it reports unexpected dot in LIBRARY syntax.
> The solution could be to rename hhctrol.ocx to hhctrl.dll but it is:
> 1) not nice to ask every user to do this favor my application by hand,
> 2) not nice to distribute since it is covered by MS license.
> 3) not nice to do it automagically on every platform since hhctrl.ocx is
registered
> component of system
>
> So solution has to be found on IMPLIB side. Any hints ? TIA

What you can do is make the def file statement hhctrl_ocx (use _ instead of .), and then patch the resulting binary to set it back to a '.'