From: John G. <jo...@jo...> - 2004-07-27 19:19:40
|
Victor Romanov wrote: > For both compilers this class must have the same binary > representation in memory. Not necessarily. Different compilers may order object members differently, align them on memory offsets differently, etc. The only guarantee is that an object will contain given variables of given types. Perhaps you are confusing calling conventions with memory representation? There are a couple different calling conventions in C, but C++ adds vtables and other mechanisms to make inheritence possible. This changes yet again how functions are called and to some extent objects' "binary representations" in memory. I think I understand what you mean, but like I said above, I think you are getting confused about something here. > In another case all COM calls will not be work. May be I must compile > with some keys or do something... COM is, at its core, a way to implement certain object-oriented functionality in non-object-oriented code. As such it is inherently C-based, although it does work fine with C++. Anyway, C code is far more portable between compilers because of the lack of vtables and name mangling. -- John Gaughan http://www.johngaughan.net/ jo...@jo... |