MSVCRT: added support for re-throwing exceptions

Patrik Stridvall ps at leissner.se
Mon Oct 28 04:29:00 CST 2002


> LICENSE: LGPL
> 
> If you compile the following code with Visual C++ using the 
> /MD option (so 
> that it uses msvcrt.dll)
> 
> class CExceptionClass
> {
> public:
>    CExceptionClass() {number=0;}
>    long number;
> };
> 
> void doSomething()
> {
>    try {
>      throw CExceptionClass();
>    } catch(...) {
>      throw;
>    }
> }
> 
> int main(int argc, char* argv[])
> {
>    try {
>      doSomething();
>    } catch(CExceptionClass& e) {
>      printf("%d\n",e.number);
>    }
>    return 0;
> }
> 
> and run it under WINE, it will crash. 

It would probably be a good idea to submit this as a
test in order to check that this will work in the future.

However this is not a normal test because of two reasons
1. It is a C++ only test
2. It is only meaningful if a binary compiled by MS VC++
   is run under Wine.

Anyway, since very recently thanks to ./tools/winapi/msvcmaker
it is possible to compile[1] the Wine tests using MS VC/C++ and
run them under Windows. Obviously the binaries generated should
be able to run under Wine as well...

[1] All tests currenly doesn't compile quite yet, but the
infrastructure is in place. I haven't had much time to look at
it yet. Help would be nice...



More information about the wine-devel mailing list