Notepad++

Sergey Gromov snake.scaly at gmail.com
Wed Aug 12 20:05:21 PDT 2009


Wed, 12 Aug 2009 21:35:02 -0500, Andrei Alexandrescu wrote:

> Sergey Gromov wrote:
>> 2.  Lexers are written in C++ and interface with the rest of Scintilla
>> via C++ classes.  Therefore if a field is added or removed anywhere, or
>> if you use a different compiler to build your DLL than that used to
>> build Scintilla, you'll get GPF, or worse.
> 
> If they use binary interfacing with virtual functions a la COM's
> binary standard, then field presence shouldn't matter.

They don't, unfortunately.  Every lexer defines a static instance of a
LexerModule class.  The coloring function receives a reference to an
Accessor class.  They're full-blown classes, with fields and stuff.

> Also, most compilers on Windows respect the basic ABI. No?

Even though they don't use inheritance, and therefore most compilers
will likely build identical data layouts for them, there is still zero
compatibility between different versions of those classes.



More information about the Digitalmars-d mailing list