Tag Archive for 'Easy'

Page 2 of 2

Simple C++ List Class

Just as I published some days ago the Simple C++ String Class as a C++ learning exercise, now I am freeing a Simple C++ List Class.

The standard library has a list class. But, while learning, it’s a good idea to know how to develop your own list class.

That’s why I made the List class. It’s not intended for professional projects (for them, you should use the standard library’s list), but as help to learn C++.

template <class TYPE>
class List
{
	/* ... */

public:
	//Construction and destruction
	List() { /* ... */ }
	~List() { /* ... */ }
	
	List(const List& rlList) { /* ... */ }
	
	//Assignment operator
	List& operator=(const List& rlList);

	//Information
	int Length() { /* ... */ }
	bool Empty() { /* ... */ }

	//Element managing
	int Add(TYPE& rtData);
	TYPE* Elem(int nPos);
	bool Delete(int nPos);
	void DeleteAll();
	
	//Search
	int Find(TYPE& rItem, int nStartAt = 0);

	//Operadores
	TYPE& operator[](int nPos) { /* ... */ }	//Elem
	int operator<<(TYPE& rdData) { /* ... */ }	//Add

protected:
	void FreeList();
	void Init() { /* ... */ }
};

//Output
template <class TYPE>
std::ostream& operator<<(std::ostream& oStream, List<TYPE>& rlList);

Keep reading…

Incoming search terms for the article:

3D Pinball for Windows (Space Cadet) Cracker – How To Modify High Scores

Everybody knows the Pinball game that appeared with Windows 95 Plus!… It’s still in current Windows versions…

Pinball_Cracker_Game

Although it may seem incredible, there are still some fanatics of this game…

I’ve made this program in 1999 (some time ago 8-)) to let you modify the High Scores so you could make those fanatics believe you had beaten them…

Pinball_Cracker_Game_High_Scores

(You should be a little more subtle than me)

Keep reading…

Incoming search terms for the article:

Office Document Property Resetter

This is a tool I’ve made two years ago to solve a problem a friend of mine had. He had at his work a bunch of Word and Excel files created in different computers and wanted to cleanup their properties so they didn’t show the configured Author/Title/Subject/etc. tags.

Office_Document_Property_Resetter_DOC_Prop_1

This would have been a simple problem to solve if there were a few files… They could be cleaned up manually…

Office_Document_Property_Resetter_Word_Menu

Office_Document_Property_Resetter_Word_Prop_1

But there were lots of them!

So… I made this tool :)

Office_Document_Property_Resetter_Main

Keep reading…

Incoming search terms for the article:

Simple C++ String Class

Every C++ programmer knows that the standard library has a string class. But, while learning, it’s a good idea to know how to develop your own string class.

That’s why I made the String class. It’s not intended for professional projects (for them, you should use the standard library’s string), but as help to learn C++.

class String
{
	char *m_pszString;	//Allocated buffer
	int m_nAllocated;	//Allocated length

public:
	//Construction and destruction
	String() { /* ... */ }
	~String() { /* ... */ }

	//Copy constructors
	String(const char *pszString) { /* ... */ }
	String(const String& rsString) { /* ... */ }

	//Operators (assignment)
	String& operator=(const char *pszString);
	String& operator=(const String& rsString) { /* ... */ }

	//Operators (concatenation)
	String& operator+=(const char *pszString);
	String& operator+=(String& rsString) { /* ... */ }
	String operator+(String rsString);

	//Operators (comparison)
	bool operator<(String sString) { /* ... */ }
	bool operator<=(String sString) { /* ... */ }

	bool operator>(String sString) { /* ... */ }
	bool operator>=(String sString) { /* ... */ }

	bool operator==(String sString) { /* ... */ }
	bool operator!=(String sString) { /* ... */ }

	//Operations
	void Clear();
	String Lower() { /* ... */ }
	String Upper() { /* ... */ }

	//Information
	int Length() { /* ... */ }

	//Cast operators
	operator const char*() { /* ... */ }

protected:	//Helper functions
	/* ... */
};

//Output e input
std::ostream& operator<<(std::ostream& oStream, String& rsString);
std::istream& operator>>(std::istream& iStream, String& rsString);

Keep reading…

Incoming search terms for the article:

cppMemDbg – Easy to use C++ memory leak detection library

This library is the C++ sequel to the cMemDbg.

Just as the cMemDbg, it is a very easy to use library which can help you to detect and track memory leaks.

Its usage is very similar to the cMemDbg, but with support for the C++ operators (new, new[], delete and delete[]).

There are lots of solutions for this on the net, but this one has the particularity of being really simple to implement.

>new  003D26D8  36  [Main.cpp:127]
>new  003D2708  36  [Main.cpp:128]
>ERROR  Bad free type  free => delete  003D2708  36
(Main.cpp:128)
>free  003D2708  36  (Main.cpp:128)  [Main.cpp:129]
>free  003D2708  0    [Main.cpp:130]
>ERROR  Trying to free unallocated memory: 003D2708
[Main.cpp:130]
>delete[]  003D3EB0  7  (String.cpp:59)  [String.h:41]
[...]
>delete[]  003D24F0  4  (String.cpp:59)  [String.h:41]
>delete  003D2490  40  (Lista.h:120)  [Lista.h:112]
>INFO  PROBLEM: Memory leak found (36 bytes)
>INFO  Unfreed block  003D26D8  36    [Main.cpp:127]

Keep reading…

Incoming search terms for the article:

Celsius to Fahrenheit

If you just want to convert temperatures by using a website, you should visit the online celsius to fahrenheit conversion tool. Otherwise, keep reading…

This is a very tiny and simple application I’ve written to teach the basic usage of wxWidgets as an introduction to GUI (Graphical User Interfaces).

Its purpose is just what it’s name says: converting from celsius degrees to fahrenheit degrees (and sideways).

CelsiusAFahrenheit

Keep reading…

Incoming search terms for the article:

UpTime (How much time has the computer been powered on)

With this tiny tool, you can know how much time has the computer been powered on…

UpTime

GNU GPL v3 UpTime is licensed under the GNU GPL v3 (attached)…

As usual, here are the links…

For the ones who want to easily read the relevant code:

DWORD dwMilliseconds = GetTickCount();

int nSeconds = (dwMilliseconds/1000)%60;
int nMinutes = (dwMilliseconds/1000/60)%60;
int nHours = (dwMilliseconds/1000/60/60)%24;
int nDays = dwMilliseconds/1000/60/60/24;

char pszStr[256];
sprintf_s(pszStr, 256, "%d days, %d hours, %d minutes and %d seconds", nDays, nHours, nMinutes, nSeconds);

MessageBox(NULL, pszStr, "UpTime 1.0 by NeoEGM <http://www.neoegm.com/software/uptime/>", MB_ICONINFORMATION);

Incoming search terms for the article:

cMemDbg – Easy to use C memory leak detection library

After some time working with C, I decided to develop a very easy to use library which can help you to detect and track memory leaks.

There are lots of solutions for this on the net, but this one has the particularity of being really simple to implement.

Keep reading…

Incoming search terms for the article: