Solved

Using Winsock in a DLL

Posted on 2000-04-27
4
350 Views
Last Modified: 2010-08-05
Hi,

I am trying to write a simple socket program for a C++ DLL. I am getting the errors

c:\program files\microsoft visual studio\vc98\include\winsock.h(520) : error C2011: 'linger' : 'struct' type redefinition

I have the following code to protect redefinition in all .h files:

#ifndef __WIN32_H
#define __WIN32_H

#include <winsock.h>
#include .....

#endif

I am also getting the following warnings. They seem very odd to me

c:\program files\microsoft visual studio\vc98\include\winsock.h(551) : warning C4005: 'FD_READ' : macro redefinition
        c:\program files\microsoft visual studio\vc98\include\winsock2.h(598) : see previous definition of 'FD_READ'  

I have the ws2_32.lib in the project-link tab

please help :)

Sonya Klose


0
Comment
Question by:sklose
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 4

Accepted Solution

by:
pellep earned 60 total points
ID: 2754429
Try to include winsock2.h instead of winsock.h
Also, i beleive that if you include windows.h, it will include winsock headers for you.
0
 
LVL 4

Expert Comment

by:saurabh_dasgupta
ID: 2754458
If you are linking with ws2_32.lib then you better include WINSOCK2.H

I think that, the problem mentioned by you is occurring because, somewhere you
are including both WINSOCK.H and WINSOCK2.H . Only one of them can be included.

#include <WINSOCK.H>
#include <WINSOCK.H>
will work fine , but

#include <WINSOCK.H> //this could be be //in some other header file , and that //file is getting included here
#include <WINSOCK2.H>
will lead to errors similar to what you have stated.


Hope this helps.
0
 

Author Comment

by:sklose
ID: 2757507
Thankyou!!!!
0
 

Author Comment

by:sklose
ID: 2757521
It works now!

windows.h sure does include winsock.h
All I had to do was replace winsock.h with windows.h and presto it work!

Thanks a million
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This article will show you some of the more useful Standard Template Library (STL) algorithms through the use of working examples.  You will learn about how these algorithms fit into the STL architecture, how they work with STL containers, and why t…
Many modern programming languages support the concept of a property -- a class member that combines characteristics of both a data member and a method.  These are sometimes called "smart fields" because you can add logic that is applied automaticall…
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question