On Mon, 9 Dec 2002, Francois Gouget wrote:
Also I would not be surprised if the MS macros were less flexible than the ICOM macros and required that you have a compiler that can generate C++ classes with just the right binary layout.
Yeah, as mentioned in my original mail, I didn't know where to hook in ICOM_USE_COM_INTERFACE_ATTRIBUTE and ICOM_MSVTABLE_COMPAT if we used them. The latter could probably be plugged into BEGIN_INTERFACE, but the former (which seems more useful) has no place. We'd have to add a Wine-specific macro for that at least...
Concerning the array issue, isn't 'int[] a' equivalent to 'int a[]'?
I've never seen that syntax with named parameters (I do know int[] to be valid with unnamed parameters in C++, but unnamed parameters aren't allowed in C). Does it work everywhere? Certainly doesn't on my gcc 2.95...
$ cat foo.c int func(int[] b) { return 0; }
int main() { int[5] a; return 0; }
$ cc -c foo.c foo.c:1: parse error before `b' foo.c: In function `main': foo.c:8: parse error before `[' $ c++ -c foo.c dill.c: In function `int main()': dill.c:8: parse error before `['
(hmm, seems to be valid as a function argument in C++, but not C?)
Or is it just that MSVC does not like the ',,' in macro invocations?
That's a separate issue that I don't know anything about.