Solved

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

Posted on 2004-10-04
4
543 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 500 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

Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
PDF library for Delphi 2 120
IdTCPClient1->Disconnect(); not working 3 66
How to split this in C++ 4 101
Add values of each row in an array 3 56
IntroductionThis article is the second in a three part article series on the Visual Studio 2008 Debugger.  It provides tips in setting and using breakpoints. If not familiar with this debugger, you can find a basic introduction in the EE article loc…
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 additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

776 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