Wednesday, December 2, 2009

Evolution Of a Software Engineer
!


Evolution
of A software Engineer (programmer)


High
School/Jr.High



10 PRINT "HELLO WORLD"
20
END



OUTPUT:
Hello
World




First
year in College



program
Hello (input, output)

begin

writeln ('Hello World')

end.



OUTPUT:
Hello
World



Senior
year in College


(define hello
(print

(cons 'Hello (list 'World))))



OUTPUT:
Hello
World




New
professional


#include <stdio.h>
void
main(void)

{

char *message[] = {"Hello ", "World"};
int i;


for(i = 0; i < 2; ++i)


printf("%s",
message[i]);

printf("\n");

}




OUTPUT:
Hello
World




Seasoned
professional


#include <iostream.h>

#include <string.h>

class string

{

private:

int size;


char *ptr;


public:

string() : size(0), ptr(new
char('\0')) {}

string(const string &s) : size( s.size)
{


ptr = new char[size + 1];


strcpy(ptr,
s.ptr);

}

~string()
{

delete [] ptr;

}


friend ostream &operator
<<(ostream &, const string &);
string
&operator=(const char *);
};



ostream
&operator<<(ostream &stream, const string &s)
{


return(stream
<< s.ptr );


}


string &string::operator=(const char *chrs)
{

if (this != &chrs)
{


delete
[] ptr;


size
= strlen(chrs);
ptr = new char[size + 1];
strcpy(ptr,
chrs);
}

return(*this);
}



int
main()


{

string str;



str = "Hello World";

cout
<< str << endl;


return(0);
}




OUTPUT:
Hello
World




Master
Programmer



[

uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)

]

library LHello

{

// bring in the master
library

importlib("actimp.tlb");

importlib("actexp.tlb");


// bring in my interfaces

#include "pshlo.idl"


[

uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)

]

cotype THello

{

interface IHello;

interface IPersistFile;

};

};

[


exe,

uuid(2573F890-CFEE-101A-9A9F-00AA00342820)

]
module CHelloLib
{

// some code related header
files
importheader(< windows.h>);


importheader(<
ole2.h>);

importheader(< except.hxx>);

importheader(" pshlo.h");

importheader(" shlo.hxx");

importheader(" mycls.hxx");


// needed typelibs


importlib("actimp.tlb");

importlib(" actexp..tlb");

importlib("thlo.tlb");



[

uuid(2573F891-CFEE-101A-9A9F-00AA00342820),

aggregatable

]

coclass CHello
{


cotype
THello;


};

};

#include "ipfix.hxx "



extern
HANDLE hEvent;

class CHello : public CHelloBase
{


public:

IPFIX(CLSID_CHello);


CHello(IUnknown *pUnk);
~CHello();


HRESULT __stdcall PrintSz(LPWSTR pwszString);


private:
static int cObjRef;
};



#include
< windows.h >
#include < ole2.h >

#include < stdio.h>

#include < stdlib.h>


#include " thlo.h"

#include " pshlo.h"

#include " shlo.hxx "

#include " mycls.hxx"


int CHello::cObjRef = 0;


CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
{


cObjRef++;

return;
}

HRESULT __stdcall
CHello::PrintSz(LPWSTR pwszString)
{


printf("%ws\n",
pwszString);
return(ResultFromScode(S_OK));
}


CHello::~CHello(void)
{



//
when the object count goes to zero, stop the server
cObjRef--;
if(
cObjRef == 0 )
PulseEvent(hEvent);

return;
}


#include <windows.h>


#include
< ole2.h>

#include "pshlo.h"

#include "shlo.hxx"

#include "mycls.hxx"


HANDLE hEvent;

int _cdecl main(

int
argc,

char * argv[]
) {


ULONG
ulRef;

DWORD dwRegistration;

CHelloCF *pCF = new CHelloCF();


hEvent = CreateEvent(NULL, FALSE, FALSE,
NULL);

// Initialize the OLE libraries


CoInitializeEx(NULL,
COINIT_MULTITHREADED);

CoRegisterClassObject(CLSID_CHello,
pCF, CLSCTX_LOCAL_SERVER,


REGCLS_MULTIPLEUSE,
&dwRegistration);


// wait on an event to stop

WaitForSingleObject(hEvent, INFINITE);

//
revoke and release the class object

CoRevokeClassObject(dwRegistration);

ulRef = pCF->Release();

// Tell OLE we are going away.

CoUninitialize();

return(0);
}


extern CLSID CLSID_CHello;

extern UUID LIBID_CHelloLib;

CLSID CLSID_CHello = { _/*
2573F891-CFEE-101A-9A9F-00AA00342820 */
0x2573F891,

0xCFEE,
0x101A,


{
0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};



UUID
LIBID_CHelloLib = { _/* 2573F890-CFEE-101A-9A9F-00AA00342820 */

0x2573F890,

0xCFEE,

0x101A,

{ 0x9A, 0x9F, 0x00, 0xAA,
0x00, 0x34, 0x28, 0x20 }
};



#include
<windows.h >
#include < ole2.h >

#include < stdlib.h>

#include < string.h>


#include < stdio.h>

#include " pshlo.h"
#include "shlo.hxx "

#include " clsid.h"

int _cdecl main(

int
argc,

char * argv[]
) {


HRESULT
hRslt;
IHello *pHello;
ULONG
ulCnt;
IMoniker * pmk;
WCHAR wcsT[_MAX_PATH];

WCHAR wcsPath[2 * _MAX_PATH];

// get object path

wcsPath[0] = '\0';
wcsT[0] = '\0';
if( argc > 1) {

mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);

wcsupr(wcsPath);
}

else {
fprintf(stderr,
"Object path must be specified\n");
return(1);
}


// get
print string


if(argc
> 2)


mbstowcs(wcsT,
argv[2], strlen(argv[2]) + 1);
else
wcscpy(wcsT, L"Hello
World");

printf("Linking to object %ws\n", wcsPath);

printf("Text String %ws\n", wcsT);

// Initialize the OLE
libraries
hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);


if(SUCCEEDED(hRslt)) {



hRslt
= CreateFileMoniker(wcsPath, &pmk);
if(SUCCEEDED(hRslt))


hRslt =
BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);



if(SUCCEEDED(hRslt))
{

// print a string out


pHello->PrintSz(wcsT);



Sleep(2000);


ulCnt =
pHello->Release();


}


else


printf("Failure
to connect, status: %lx", hRslt);

// Tell OLE we are going
away.
CoUninitialize();


}



return(0);


}





OUTPUT:
Hello
World

No comments:

Post a Comment