D - bug?
- Evan McClanahan (49/49) Dec 07 2002 For some reason, when I was writing a static constructor for a module,
- Walter (4/53) Dec 08 2002 Hi Evan. I need a complete source file in order to track down any crashe...
For some reason, when I was writing a static constructor for a module,
and I made an error in the code somewhere (which error doesn't seem
important, since it happened to me several times while debugging the
constructor (don't ask), and each time the compiler threw an exception
and crashed after spitting out some error messages. This one went
uncaught, since it threw up a message box on my system. Not sure
what's causing it, but there are some issues there...
WSAData wsadata;
static this()
{
int err = WSAStartop(0x0101us, &wsadata);
if (err)
{
throw(new Exception("Error with networking startup.");
}
}
the above caused this output:
winsock.d(19): found 's' when expecting ','
winsock.d(19): expression expected, not ','
winsock.d(23): found ';' when expecting ')'
winsock.d(24): found '}' when expecting ';'
winsock.d(27): basic type expected, not TOK80
winsock.d(27): no identifier for declarator
and then a crash with a segmentation violation, it looks like, but
windows doesn't like to name it's shit in any worthwhile manner, so I
can't really tell. Says that an instruction tried to read memory at
0x00000005, and everything died. There's another problem too, since
there's a typo in there. WSAStartop() isn't a function, but it seems to
compile ok. Am I doing the constructor incorrectly? shouldn't total
garbage in the d file cause some sort of error?
Additionally, I'm using implib to generate my winsock.lib file. It
seems to work fine, and gives me these messages:
C:\evan\src>implib winsock.lib c:\winnt\system32\winsock.dll
implib winsock.lib c:\winnt\system32\winsock.dll
Digital Mars Import Library Manager Version 7.6B1n
Copyright (C) Digital Mars 2000. All Rights Reserved.
Input is a Windows WIN3 DLL file.
Output is a Windows WIN3 import library.
Digital Mars Import Library Creator complete.
And everything links fine and seems to be happy. However, once I try to
run the program, an error message pops up, saying that winsock.dll isn't
a valid image, and that I should check it against my installation
diskette or something similar. I don't know what's going on there, but
I don't have the patience to convert the winsock 2 stuff at the moment
and see if that works. (for the record, ws2_32.lib, which the windows
documentation says is what you're supposed to link with when using
winsock2.dll (no idea why the names are different) isn't recognised by
dmd .50 as a valid library file.)
Evan
Dec 07 2002
Hi Evan. I need a complete source file in order to track down any crashes
while compiling. Thanks, -Walter
"Evan McClanahan" <evan dontSPAMaltarinteractive.com> wrote in message
news:asth8i$2c66$1 digitaldaemon.com...
For some reason, when I was writing a static constructor for a module,
and I made an error in the code somewhere (which error doesn't seem
important, since it happened to me several times while debugging the
constructor (don't ask), and each time the compiler threw an exception
and crashed after spitting out some error messages. This one went
uncaught, since it threw up a message box on my system. Not sure
what's causing it, but there are some issues there...
WSAData wsadata;
static this()
{
int err = WSAStartop(0x0101us, &wsadata);
if (err)
{
throw(new Exception("Error with networking startup.");
}
}
the above caused this output:
winsock.d(19): found 's' when expecting ','
winsock.d(19): expression expected, not ','
winsock.d(23): found ';' when expecting ')'
winsock.d(24): found '}' when expecting ';'
winsock.d(27): basic type expected, not TOK80
winsock.d(27): no identifier for declarator
and then a crash with a segmentation violation, it looks like, but
windows doesn't like to name it's shit in any worthwhile manner, so I
can't really tell. Says that an instruction tried to read memory at
0x00000005, and everything died. There's another problem too, since
there's a typo in there. WSAStartop() isn't a function, but it seems to
compile ok. Am I doing the constructor incorrectly? shouldn't total
garbage in the d file cause some sort of error?
Additionally, I'm using implib to generate my winsock.lib file. It
seems to work fine, and gives me these messages:
C:\evan\src>implib winsock.lib c:\winnt\system32\winsock.dll
implib winsock.lib c:\winnt\system32\winsock.dll
Digital Mars Import Library Manager Version 7.6B1n
Copyright (C) Digital Mars 2000. All Rights Reserved.
Input is a Windows WIN3 DLL file.
Output is a Windows WIN3 import library.
Digital Mars Import Library Creator complete.
And everything links fine and seems to be happy. However, once I try to
run the program, an error message pops up, saying that winsock.dll isn't
a valid image, and that I should check it against my installation
diskette or something similar. I don't know what's going on there, but
I don't have the patience to convert the winsock 2 stuff at the moment
and see if that works. (for the record, ws2_32.lib, which the windows
documentation says is what you're supposed to link with when using
winsock2.dll (no idea why the names are different) isn't recognised by
dmd .50 as a valid library file.)
Evan
Dec 08 2002








"Walter" <walter digitalmars.com>