?
Solved

What is wrong with my code: WSAStartup errors...

Posted on 2004-10-04
4
Medium Priority
?
575 Views
Last Modified: 2012-06-21
I included wsock32.lib into the settings->link->object
and when I compile the following: (partial code shown)

#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <winsock.h>

using namespace std;

void errexit(const char *, ...);
void UDPecho_cnls(const char *host, const char *service);

#define LINELEN            128
#define WSVERS            MAKEWORD(2, 0);


void main(int argc, char *argv[])
{

      char      *host = argv[1], *service = argv[2];
      WSADATA      wsadata;

      if(argc!=3)
      {
      cout<<"Command line does not contain the        

                                correct "<<endl;
            cout<<" number of arguments."<<endl;
      }

      if(WSAStartup(WSVERS, &wsadata))
            errexit("WSAStartup failed\n");

      UDPecho_cnls(host, service);
      WSACleanup();
      exit(0);
}


I get the following errors:
--------------------Configuration: Program 3 - Win32 Debug--------------------
Compiling...
Program 3.cpp
C:\CS423P3\Program 3.cpp(28) : error C2143: syntax error : missing ')' before ';'
C:\CS423P3\Program 3.cpp(28) : error C2660: 'WSAStartup' : function does not take 1 parameters
C:\CS423P3\Program 3.cpp(28) : error C2143: syntax error : missing ')' before ';'
C:\CS423P3\Program 3.cpp(28) : warning C4390: ';' : empty controlled statement found; is this the intent?
C:\CS423P3\Program 3.cpp(28) : error C2143: syntax error : missing ';' before ','
C:\CS423P3\Program 3.cpp(28) : error C2059: syntax error : ')'
C:\CS423P3\Program 3.cpp(28) : error C2059: syntax error : ')'
Error executing cl.exe.

Program 3.obj - 6 error(s), 1 warning(s)


All the errors relate to the
      if(WSAStartup(WSVERS, &wsadata))
            errexit("WSAStartup failed\n");
code.  What is wrong?  Am I leaving a library out?

0
Comment
Question by:bjw5d6
  • 3
4 Comments
 
LVL 19

Accepted Solution

by:
mrwad99 earned 2000 total points
ID: 12216478
>> #define WSVERS          MAKEWORD(2, 0);

with

>>    if(WSAStartup(WSVERS, &wsadata))

expands to

if (WSAStartup(MAKEWORD(2, 0);, &wsadata))

Lose the ; from the preprocessor directive :)
0
 
LVL 19

Expert Comment

by:mrwad99
ID: 12216487
...You need to remember that #define'd symbols like this are replaced *exactly* as you define them.  So the problem in this case was simply you adding the unncecessary ; after your WSVERS definition.
0
 

Author Comment

by:bjw5d6
ID: 12231769
OH!  Thanks so much!  I already turned my code in... I ended up changing the
#define to Word (or something like that) and then it worked.  I didn't know why it didn't work w/ #define, because I saw that my instructor used #define in his notes... I get it now! No ; !!!  Thanks for your help!
0
 
LVL 19

Expert Comment

by:mrwad99
ID: 12235068
Glad to help :)
0

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

Question has a verified solution.

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

This article shows you how to optimize memory allocations in C++ using placement new. Applicable especially to usecases dealing with creation of large number of objects. A brief on problem: Lets take example problem for simplicity: - I have a G…
Article by: evilrix
Looking for a way to avoid searching through large data sets for data that doesn't exist? A Bloom Filter might be what you need. This data structure is a probabilistic filter that allows you to avoid unnecessary searches when you know the data defin…
The goal of the tutorial is to teach the user how to use functions in C++. The video will cover how to define functions, how to call functions and how to create functions prototypes. Microsoft Visual C++ 2010 Express will be used as a text editor an…
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.

571 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