Thread overview
winsock2.h already defined
Oct 03, 2003
peter.vogel
Oct 03, 2003
Jan Knepper
Oct 04, 2003
Peter Vogel
Oct 04, 2003
Walter
Oct 05, 2003
Peter Vogel
Oct 05, 2003
Walter
October 03, 2003
Hi

I'm trying to build following project with the idde.
#include <windows.h>
#include <winsock2.h>
#include <stdio.h>
//Prototypen
int startWinsock(void);
int main()
{
long rc;
SOCKET s;
SOCKADDR_IN addr;
return 0;
}
int startWinsock(void)
{
WSADATA wsa;
return WSAStartup(MAKEWORD(2,0),&wsa);
}
But I got the following error messages:
sc winsockmin.c -mn -C -WA -S -3 -a8 -c -gf -owinsockmin.obj
Error: C:\PROGRAMME\DM\BIN\..\include\win32\WINSOCK2.H(85): 'fd_set' is already
defined
Error: C:\PROGRAMME\DM\BIN\..\include\win32\WINSOCK2.H(88): identifier or '(
declarator )' expected
.... etc.
Lines Processed: 124670  Errors: 5  Warnings: 0
Build failed
Where are the double definitions?
If I don't include winsock2.h, WSADATA is not defined!
The program (with some more code) worked fine, when compiled with lcc32.
But I have to use DM, because I have to combine the winsock program with other
code, that uses inline assembler. This didn't compile with lcc32, but with DM.

Best regards, Peter



October 03, 2003
When using winsock2,h you have to:

#define _WINSOCKAPI_            // Prevent winsock.h #include's.

Before you include anything to prevent winsock.h from inclusion as that creates conflicts.



peter.vogel@vogel-messtechnik.ch wrote:
> Hi
> 
> I'm trying to build following project with the idde.
> #include <windows.h>
> #include <winsock2.h>
> #include <stdio.h>
> //Prototypen
> int startWinsock(void);
> int main()
> {
> long rc;
> SOCKET s;
> SOCKADDR_IN addr;
> return 0;
> }
> int startWinsock(void)
> {
> WSADATA wsa;
> return WSAStartup(MAKEWORD(2,0),&wsa);
> }
> But I got the following error messages:
> sc winsockmin.c -mn -C -WA -S -3 -a8 -c -gf -owinsockmin.obj Error: C:\PROGRAMME\DM\BIN\..\include\win32\WINSOCK2.H(85): 'fd_set' is already
> defined
> Error: C:\PROGRAMME\DM\BIN\..\include\win32\WINSOCK2.H(88): identifier or '(
> declarator )' expected
> .... etc.
> Lines Processed: 124670  Errors: 5  Warnings: 0
> Build failed
> Where are the double definitions?
> If I don't include winsock2.h, WSADATA is not defined!
> The program (with some more code) worked fine, when compiled with lcc32.
> But I have to use DM, because I have to combine the winsock program with other
> code, that uses inline assembler. This didn't compile with lcc32, but with DM.
> 
> Best regards, Peter
> 
> 
> 

-- 
ManiaC++
Jan Knepper

October 04, 2003
In article <blkg4c$gcp$1@digitaldaemon.com>, Jan Knepper says...
>
>When using winsock2,h you have to:
>
>#define _WINSOCKAPI_            // Prevent winsock.h #include's.
>
>Before you include anything to prevent winsock.h from inclusion as that creates conflicts.
>
Dear Jan

Thanks a lot for your help.
I don't include windows.h anymore, as it is included with winsock2.h.
Now it builds without error.
Just for your information: My test program for TCP/IP communication (console)
has a size of 96 KB when built with DM and 18 KB with lcc32!
It doesn' bother me, as it is only a test program.
On my project DLL winsock with a little code only adds 1 KB to 78 KB.

Best regards Peter


October 04, 2003
"Peter Vogel" <Peter_member@pathlink.com> wrote in message news:blmokr$l98$1@digitaldaemon.com...
> In article <blkg4c$gcp$1@digitaldaemon.com>, Jan Knepper says...
> >
> >When using winsock2,h you have to:
> >
> >#define _WINSOCKAPI_            // Prevent winsock.h #include's.
> >
> >Before you include anything to prevent winsock.h from inclusion as that creates conflicts.
> >
> Dear Jan
>
> Thanks a lot for your help.
> I don't include windows.h anymore, as it is included with winsock2.h.
> Now it builds without error.
> Just for your information: My test program for TCP/IP communication
(console)
> has a size of 96 KB when built with DM and 18 KB with lcc32!
> It doesn' bother me, as it is only a test program.
> On my project DLL winsock with a little code only adds 1 KB to 78 KB.

DMC code will be a little larger because the runtime library needs to handle exceptions generated by VC++ code, as DMC++ can link to VC++ DLL's and such. But not that much larger, that doesn't explain the size difference. Perhaps you have debug info turned on?


October 05, 2003
In article <bln2mr$13i2$1@digitaldaemon.com>, Walter says...
>
>
>
>DMC code will be a little larger because the runtime library needs to handle exceptions generated by VC++ code, as DMC++ can link to VC++ DLL's and such. But not that much larger, that doesn't explain the size difference. Perhaps you have debug info turned on?
>
>
Indeed, this was the case.
I have now 96 K with debug on and 52 K without debug.


October 05, 2003
"Peter Vogel" <Peter_member@pathlink.com> wrote in message news:blp44b$ob5$1@digitaldaemon.com...
> In article <bln2mr$13i2$1@digitaldaemon.com>, Walter says...
> >DMC code will be a little larger because the runtime library needs to
handle
> >exceptions generated by VC++ code, as DMC++ can link to VC++ DLL's and
such.
> >But not that much larger, that doesn't explain the size difference.
Perhaps
> >you have debug info turned on?
> Indeed, this was the case.
> I have now 96 K with debug on and 52 K without debug.

That sounds about right.