Boost logo

Boost-Build :

From: Martin Fuchs (gclbb-jamboost_at_[hidden])
Date: 2003-06-02 13:57:53

Hi Vladimir,

> Can you tell more about it? What's type libraries and how/why one would
> need to integrate it in rc file?

Type libraries are used in the context of COM to make public the interface
definition of a Active X component. So other programs can use this
description to call remote functions in a program or DLL.
You can read here what MS explains about type libraries in the MSDN:

When building my project, I'm doing something like this:

*.idl --midl--> *.tlb --rc--> *.res --link--> *.dll

*.idl is the Interface Description [Language] file.
It is compiled by the IDL compiler "midl".
*.tlb is a the resulting binary file, which is then integrated into the
resource table of the DLL.
The TLB is called by the *.rc file with a statement like this:
1 TYPELIB "foo.tlb"

The type library compiler can also generate a few more files, like c source
files and headers, which contain the "marshalling code". This should then be
compiled by the C compiler and linked together with the rest of the program.

The other type of file, I'm using in context of resource files, are so
called "message files" (*.mc). This contain internationalized text prases,
which can be read by the application. The message compiler "mc" generates
one binary output file for any used language:

*.mc --mc--> msg_ger.bin, msg_eng.bin --rc--> *.res --link--> *.dll

This are integrated into the resource file by the resource compiler.

Of course it would be nice, if all this could be done by boost build
automaticly. I did get it working, but I had a bit difficulties to find all
those "object-name", "UserObject", ... which I had to modify.

Another little question:
I tried to use an expression like this:
If $(SOURCE_GRIST) is an empty string, the result is also empty, regardles
of the contents of $(<) ! Is this the correct behaviour? I explected to get
just the new filename without any grist.



Martin Fuchs

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at