Alexandre Julliard julliard@winehq.org wrote:
dlls/rpcrt4/tests/server.c | 55 ++++++++++++++++++++++++++++++++++++++++++++ dlls/rpcrt4/tests/server.idl | 5 ++++ 2 files changed, 60 insertions(+)
It doesn't work on 64-bit:
There are several problems in widl that lead to the failures: 1. widl generates array descriptions very differently from midl 2. widl generates negative offsets in the pointer layout descriptions, while negative offsets apparently work for some things, it looks like rpcrt4 in windows doesn't support them for arrays of strings, and the test crashes. Manually changing offsets in generated by widl *_c.c and *_s.c files and moving pointer layout descriptions before the array descriptions (currently that's reversed) makes the test run under Windows. 3. for win64 widl generates FC_BOGUS_ARRAY descriptions which are very different from midl generated code, and the test crashes under Windows. Probably FC_BOGUS_ARRAY case is not very well tested, especially in 64-bit build.
I have the patches for #1 and #2, but they need more testing, and #3 will require quite a bit of additional effort.
I'd appreciate any help with these problems.