Windows Operating Environment cs423-cotter1. 2 Windows Operating Environment 64 bit operating...

Post on 04-Jan-2016

229 views 1 download

Tags:

transcript

Windows Operating Environment

cs423-cotter 1

cs423-cotter 2

Windows Operating Environment

• 64 bit operating environment – Windows 7• Microsoft Visual Studio.net 2010• STB Rooms 460, 462, 464

– 75 machines – Intel Dual Core class– Personal storage on remote machines

• Q: drive (60 MB), Y: drive (100MB)

– Most programs on local hosts

cs423-cotter 3

Windows Operating Environment

• Tools Available on SCE machines:– Web Browsers (Netscape, Explorer)– Business tools (MS Office)– Math tools (Maple, Matlab)– Programming tools ( MSVS2008, etc. )– ftp– telnet– etc.

cs423-cotter 4

Find IP Address of W7 Machine

• Start -- Programs -- Command Prompt• Brings up a text window• At text prompt: route print C:\users>route print

Active Routes:

Network Address Netmask Gateway Address Interface Metric 0.0.0.0 0.0.0.0 134.193.2.254 134.193.2.253 1 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 134.193.2.0 255.255.255.0 134.193.2.253 134.193.2.253 1 134.193.2.253 255.255.255.255 127.0.0.1 127.0.0.1 1 134.193.255.255 255.255.255.255 134.193.2.253 134.193.2.253 1 224.0.0.0 224.0.0.0 134.193.2.253 134.193.2.253 1 255.255.255.255 255.255.255.255 134.193.2.253 134.193.2.253 1

cs423-cotter 5

Using ipconfig:

Q:\>ipconfig

Windows 2000 IP Configuration

Ethernet adapter Local Area Connection:

Connection-specific DNS Suffix . : ddns.umkc.edu IP Address. . . . . . . . . . . . : 134.193.2.253 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 134.193.2.254

Q:\>

Windows Programming Environment - MS Dev Studio

cs423-cotter 6

Visual Studio .NET

Windows ProgrammingStart New Project

• Microsoft Visual Studio .Net• Start -- Programs -- MS Visual Studio -- MS

Visual Studio• To create a new project:

– From Start Page: Create – Project– Select Win32 Console Application– Identify storage location for new project– Provide Project name– OK

cs423-cotter 8

New Project Window

Windows ProgrammingAdd / Create files

• Project – Add Existing Item – C++ File• Locate desired files.• Repeat for all needed files• For new files:• Project -- Add New Item – C++ File• Identify file.

cs423-cotter 11

Windows ProgrammingAdd Libraries

• Project -- Properties• linker tab -- category = Input -- add library

names to “Additional Dependencies”• for sockets, add “wsock32.lib”

cs423-cotter 14

Add Libraries

To support Multi-threaded Programs:

• Select Project Program Properties• Select C/C++ tab

– Code Generation subtab

• Runtime Library item: – Default may be “Single-threaded Debug (/MLd)”– Select “Multi-threaded Debug (/MTd)”

Windows ProgrammingSelect Active Configuration

• Two compile configurations available– Release– Debug

• Build – select “Configuration Manager”• Select either Debug or Release

– Note that debug versions create large (megabyte) files.

cs423-cotter 20

Active / Debug Configuration

Windows ProgrammingBuild and Execute Project

• Build -- Build “project_name”• Check message window for compile and link

status. • If no errors are indicated, execute program.• Debug – “Start Debugging” or “Start Without

Debugging”

cs423-cotter 23

Windows Threads

• Similar in concept to processes, but designed to identify multiple activities that can be scheduled independently.

• All programs have at least 1 thread -- main ( ) program

• Any thread can create new threads.

cs423-cotter 26

Windows Threads

• In C language (console mode):

unsigned long _beginthread (void(_cdecl *start_address)(void *),unsigned stack_size,void *arglistv );

Required Header: <process.h>Required Libraries: LIBCMT.LIB or

MSVCRT.LIB

cs423-cotter 27

_beginthread ( )

• void(_cdecl *start_address)(void *),– Start address of the routine that will begin the thread– The routine must have no return value

• unsigned stack_size,– Provide either a stack size for new thread or, if value is 0,

use the same stack size as “parent thread” uses.

• void *arglist– Address of data item passed to new thread or NULL if

nothing passed

cs423-cotter 28

consum.cpp - multithreading

cs423-cotter 29

#include <stdlib.h>#include <stdio.h>#include <process.h>

void addem(void *);

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

int number = 4;_beginthread( addem, 0,(void *)&number);number++;addem(&number);return 0;

}

consum.cpp - multithreading

cs423-cotter 30

void addem(void * vcount){

int i, count, sum;sum = 0;count = *(int *)vcount;for (i=0; i<=count; ++i) {

printf("The value of i is %d\n", i);fflush(stdout);sum += i;

}printf("The sum is %d\n", sum);fflush(stdout);

}

consum.cpp - Results

cs423-cotter 31

The value of i is 0The value of i is 1The value of i is 2The value of i is 3The value of i is 4The value of i is 5The sum is 15

consum2.cpp - multithreading

cs423-cotter 32

#include <stdlib.h>#include <stdio.h>#include <process.h>#include <windows.h>

void addem(void *);

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

int number = 4;_beginthread( addem, 0,(void *)&number);Sleep (100L);number++;addem(&number);return 0;

}

consum2.cpp - multithreading

cs423-cotter 33

void addem(void *vcount){

int i, sum, count;count = *(int *)vcount;sum = 0;for (i=0; i<=count; ++i)

{printf("The value of i is %d\n", i);fflush(stdout);sum += i;

}printf("The sum is %d\n", sum);fflush(stdout);

}

consum.cpp - Results

cs423-cotter 34

The value of i is 0The value of i is 1The value of i is 2The value of i is 3The value of i is 4The sum is 10The value of i is 0The value of i is 1The value of i is 2The value of i is 3The value of i is 4The value of i is 5The sum is 15

consumfloat.cpp #include <windows.h> , <stdlib.h, <stdio.h>, <process.h>

void p_func(void *); int flag;

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

float num, num2;num = 9.0f;num2 = 12.0f;flag = 0;_beginthread(p_func, 0, (void *)&num);while (flag == 0)

;p_func((void *)&num2);return 0;

}

cs423-cotter 35

consumfloat.cppvoid p_func(void * vcount){

float *numptr;int number, i, prod;flag = 1;numptr = (float*) vcount;number = (int) *numptr;prod = 1;for (i = 1; i <= number; i++)

prod = prod * i;printf("The number is %d\n", number);printf ("The factorial product is %d\n", prod);printf("The float is %5.2f\n", *numptr);fflush(stdout);

}cs423-cotter 36

Consumfloat.cpp Results

The number is 9The factorial product is 362880The float is 9.00The number is 12The factorial product is 479001600The float is 12.00

Press any key to continue . . .

Summary

• Many Windows Integrated Development Environments (IDEs) available to develop C++ programs. – UMKC Labs provide Microsoft Visual Studio

• Multi-threading supported in Windows IDEs. – Just remember to correctly load the correct

runtime libraries.

cs423-cotter 38