PDA

View Full Version : Visual Basic vs C++



Pages : [1] 2 3

CodeNinja
07-15-2004, 09:05 AM
I know this forum is mainly for questions, but I wanted to have a little discussion. If you know both VB and C++ or have had experience with both then post, but otherwise you will probably not know what we are talking about and you will probably look stupid so I advise against it.

I learned VB about 3 or 4 years ago. I was just getting into computers because I had met some geeks at school. I had never hung out with geeks before because I was always the Abercrombie wearing jock wannabe before then, but because highschool was so large I decided I would broaden my horizons. Well, I didn't exactly decide for myself. What happened was that I was hanging out with these rocker kids and I stole one of their mom's pint of vodka or some alcoholic beverage and ........ed in it. I was playing around, but I used to get carried away when I was a younger. So I had to find new friends because the rocker group was obviously ........ed at me. I met up with the geeks and they started I am sillyI am sillyI am sillyI am silly talking me because I didn't know what 1337 was or 'EL-Three-Three-Tee'. So I set out to find out wat 1337 was, and it just went on from there until I picked up HTML then VB when I realized I could actually create programs on a computer. It was the biggest rush ever. I mean HTML is a respectable language, and I speak it well, but my ideas got too big for notepad and a webpage. So I went to Barnes & Noble and got 2 books: 1. Guide to VB6.0 2. Game Programming With VB6.0 + DirectX 9.0. I read all of the Guide to VB6.0, and half of the Game Programming book, but then I met C++. I have fell in love ever since.

C++ is so much more dynamic and fluid in it's functionality than VB. People call it lack of standards, but I say too many standards and you get restricted code that makes you feel like you aren't programming any more but following a compiler's directions. I mean, isn't that why we all started programming anyways? I started it for fun (WHICH EVERYONE SHOULD BECUASE CODING IS A FREAKIN DRUG RUSH!) because I was playing all these games and it was getting old, and I was like this is lame, all I do is follow a path and complete objectives in this game that someone else laid out for me. Why can't I make my own path, and complete my own objectives? Then it hit me. PROGRAMMING! So if C++ gets a crap load of standards it's going to be tightly knit code that would make me feel like I felt before when I was playing those games, that I was following a path made by someone else, not making my own, which is what programming is all about for me.

VB when it was created, I don't know because I have never used the earlier versions, I am sure was quite fluid and modifiable to fit different styles of programming, but as time progresses and microsoft targest stupider and stupider people they get more tight on their code standards, and now when i open VB6.0 and stard coding I feel like I am not only coloring with a crayon (GUI IDE RAD environment[if you are a newb that's the Graphical User Interface Integraded Developers' Environment Rapid Application Development]) but I feel like I have an aimbot on when I write code (aimbot: it was a slur towards the gaming generation, an aimbot is a program or set of settings in a game that cause your aim to stay on an opponent or possibly just when you fire your weapon in the game so that you have an insanely good chance to hit your target). Visual Basic is nice becuase of the little popup lists that let you scroll through an Active X control's functions if it is a third party Active X control with little documentation, but other than that, I feel like I'm in a straight jacket when I code in VB.

Though, C++ on the other hand is everything VB can never be. C in itself is very low level, and you can modify any sort of piece of information you want without Windows API (C++ now on que sticks up it's middle finger a VB). Also in C++ whenever you start an app you don't get a form (term for the window and it's contained space in VB) and some already prewritten code by some lame guy in microsoft's development center, but you get a clean blank source file (cant get enuff of my 0kb .cpp files[0 kb means empty if ur retarded]) it's completely and utterly impossible to have a source file in VB that is 0 kb because the project whenever it is initialized saves default settings such as the form name (I.E. Form1) that takes up space. So even if you saved a project that you hadn't even touched it wouldn't matter because it would still take up space. Now, if i create a new .cpp file in a new workspace and don't link it to any resources or any other source so that it won't have to write configuration and link data then I could have a 0kb file, and oh yea, C++ is cool cuz it isn't made by microsoft!

Though, I got side tracked, that isn't mainly why I like it. I like it just because I have this artsy side to me and when you can create your own style of programming and be so free with code like you can with C then I just can't help but drop VB in a heart beat. And with the OOP additions with C++ it's just perfect. (Not that I specifically know them because I am still pretty new at it.) So drop VB if you use it, unless you are doing small windows apps that just need high level access (cuz vb pwnz at that), and learn C!

Please reply!

kuphryn
07-15-2004, 09:07 AM
C++

Kuphryn

sean
07-15-2004, 09:09 AM
C#

Sean

P.S. Oops... Sorry...

CodeNinja
07-15-2004, 09:11 AM
C#..... pfffft..... more like C(Microsoft is trying to conver C into a VB style language).

I was looking at some sample code the other day and was wondering where I had seen that style of code before, and I was like "oh yea, dur, VB".

sean
07-15-2004, 09:46 AM
Are you kidding? C# looks nothing like VB. And since it was made specifically for .NET it is VERY powerful. I find it quite intuitive too. Microsoft isn't evil. Just because it's done by microsoft does not mean it's bad. Trying to convert something versatile and powerful into an intuitive and easy to use language is a good idea.

CodeNinja
07-15-2004, 09:51 AM
Are you kidding? C# looks nothing like VB. And since it was made specifically for .NET it is VERY powerful.

Contradiction? :p
I dunno, maybe we just see it different ways, and I respect your opinion of the language, but I would rather stay with a well founded language that is very flexible. (like c++)

Rare177
07-15-2004, 10:42 AM
i would say learn C before C++
this way C++ will be pretty simple to learn and you will be learning 2 languages

CodeNinja
07-15-2004, 04:26 PM
I thought C++ included C, but just a different method of using it, and that the only real difference was the new OOP capability. Am I wrong? Please someone clearify the difference between C and C++.

Rare177
07-15-2004, 06:14 PM
C++ was made to be an improvement of C , i havnt done much C++ but it has made some things easier than C like error handling.

and yes it has the OOP which C doesnt have.
i think C is a better way to start

CodeNinja
07-16-2004, 08:27 AM
actually, i just got this book last night "C++ From the Ground Up" written by a guy on the ANSI C++ board. I read about the history of C and C++, and really C++ is just a superset of C and any C++ compiler can compile C code also. So if you do C++ you learn C (not exactly) but only a modified version that is modified in a way that helps support larger programs (specifically larger than 100,000 lines) that got chaotic whenever using C to create the same programs. Yes, learning C would give you a good foundation for C++, but really isn't neccisary, and with my lack of time (school, and a job) it helps me to just learn C++.

Fordy
07-16-2004, 09:53 AM
This isnt really about coding, so off to GD with it!

DavidP
07-16-2004, 10:14 AM
>What happened was that I was hanging out with these rocker kids and I stole one of their mom's pint of vodka or some alcoholic beverage and ........ed in it.

lol. oh man that's great. do it again.

>mean HTML is a respectable language, and I speak it well

you speak HTML? wow. i have never met anyone with such 1337 ski11z ;)

ober
07-16-2004, 11:25 AM
1) Smoke another one for me.
2) I will bet you that I can get twice as much done in VB as you can in C or C++ and my job will be more secure than yours.
3) I'm not against C or C++. They have their uses. So does VB. In my environment, we need to be able to develop quickly, and honestly, VB has proven to be a very powerful tool, and its only limitations are the programmers using it.
4) MS is not evil. Let go of the stereotype.
5) That post was entirely too long.
6) Until someone gives me a reason, I'm going to continue to build web apps to replace almost every desktop app we use here at my work. Why? Because PHP trumps all, biotches.

Robc
07-16-2004, 11:31 AM
>written by a guy on the ANSI C++ board
This can be true yet still not give you an idea of the author's competence. But that aside, Herb Schildt is an author well known for writing easy to understand drivel. ;)

>and really C++ is just a superset of C
Not true. C++ was originally called C with Classes, and it was what it sounds like, the C language with Simula-like classes. But it isn't the 1980's anymore, and C++ is no longer a superset of C because at this point, both C and C++ have followed their own evolutionary paths.

>and any C++ compiler can compile C code also
Also not true. C++ compilers can compile a staggering amount of C code because compatibility with C is one of the primary design goals of C++. However, there are quite a few features of C that won't compile as C++. Worse yet, there are features that compile as both C and C++ yet give different results. It's subtle problems like these that make writing C/C++ more difficult than it first appears.

>modified in a way that helps support larger programs (specifically
>larger than 100,000 lines) that got chaotic whenever using C to create the same programs
Object orientation helps to organize a large project. But that doesn't mean using C++ will automatically be an improvement over C. In fact, good C design follows similar principles that make organizing large projects just as easy as C++. To make things worse for C++, many people end up overdoing it with objects and inheritance, with very poor results. Likewise, peopel tend to write at a lower level with C and that makes writing large projects more difficult. The problem IMO isn't with the language, but with the developer.

sean
07-16-2004, 12:07 PM
I agree completely with what RobC said about C++ and C. I don't know how often it gets explained. That and the system() command... And incidently RobC, as any DNRC member can tell you, the problem is ALWAYS with the developer. Sometimes his manager, but most likely the developer.

As for what ober said, I'm also a big fan of VB. Before I discovered C#, VB was the most intuitive language I had ever seen. It was very easy to write a few lines of code and have the skeleton of your basic windows program. If you're writing apps like text or image editors, I deinfately think that something like VB would be the way to go. I would only use C or C++ if I was, as RobC pointed out, doing lower-level, less common stuff. Unfortunately for me, I never got much experience in VB because I learned it about a week before learning C#.

BillBoeBaggins
07-16-2004, 03:27 PM
VB and C++ both have their places. Visual Basic is a Rapid Application Development tool, that means it is used to snap out applications not make tight efficient code, or to stimulate you. I like to proto type in VB and then convert what I can in C++ to get rid of dependencies.
Don't get me wrong I love C++ over VB, but when I need something done I open VB first then convert what I can into C++.

nvoigt
07-18-2004, 01:09 PM
VB is the dark side of the source. It's easy, tempting and fast, but it leads to fear, anger and aggression.

Every language has it's uses, and VB was a language that could be used very well for RAD purposes. When UI was more important than program logic, VB was the way to go. Why past tense ? Because C# offers the same advantages ( and more ), minus all the drawbacks of VB.

C++ still rules when it comes to executable speed, but only few programs really need the speed of C++ and most become more cost effective when development time is cut by half when using a RAD language like C#.

CodeNinja
07-18-2004, 11:09 PM
Thanks for the info, and is C# the way to go?

I came from VB, and I agree it is a powerful language, but everyone said C because it is low level. So I am learning C and VB is easier in some areas, and just as powerful in most areas. So back to the original question, does C# include all the good stuff in C and all the good stuff in VB? Or what?

sean
07-19-2004, 09:15 AM
C# was designed specifically for .NET, so if you're doing .NET, it is IMO the way to go. Because you have all the .NET libraries that are so easy to use, VB loses a lot of its RAD advantage. And C# has ALL the abilities of .NET built right in and easy to learn.

major_small
07-20-2004, 08:35 AM
I'd definately choose C++ over VB... mostly because it's a lower-level language and you can use it on almost any operating system... for example, if you were into robotics, you usually have a choice of BASIC or C...

VB is too high a language for me... and it isn't as flexible as C/C++... for example, you could use C to control a servo from an embedded OS... you can't do that with VB...

I don't like the idea of an OS-dependent language, but judging from previous posts, it looks like I may be juming into a firestorm here...

ober
07-20-2004, 12:36 PM
Hardware interfacing. Low level means that you can do things like set bits and flags in the OS that affect hardware that you can't do in higher level languages.

ober
07-20-2004, 01:01 PM
No, you CAN do that with C. And C is actually compiled into Assembly and then into machine code (or sometimes straight to machine code), as are all languages.

Microsoft did create C#. And no, it's not wrong.

Wow... you're just a whole lot of wrong.

sean
07-20-2004, 01:42 PM
I don't think so. Here's the definition I've always used for low-level. They started with binary. Assembly is just words put in place of certain combinations of 1's and 0's. Then they made the first compilers that would convert an easier to understand code down to binary or "machine language". You can see how far it's gone. The point behind OOP is so that we can model the real world in a way that makes sense to us. But there is a trade-off between making sense to us and making sense to the computer, and the more you go towads the latter, the more power you have in your program. C is as popular as it is because it is so close to the optimum balance. It ties in very closely with assembly, but the syntax is so easy to read, that a programmer from another language can easily understand it's source.

EvBladeRunnervE
07-20-2004, 01:44 PM
about C now. when you say "like set bits and flags in the OS that affect hardware " you mean like doing something like this?

no, he means like in the case of driver development, you can get access to hardware interfaces such as the COM(serial) ports, PCI and AGP.

sean
07-20-2004, 04:36 PM
The magical C Fairies

sean
07-20-2004, 04:51 PM
I didn't think you would

major_small
07-20-2004, 09:48 PM
in other words, it's too complicated and if you keep learning more about C, you'll eventually get down to the nitty gritty and find out you can create whole operating systems <cough>NT</cough> with it...

EvBladeRunnervE
07-20-2004, 11:05 PM
but using what aspect of the language - i mean how?

It is quite apparent that you do not have a basic concept of Von Neumann architecture and definately none of the x86 variety. I seriously recommend you do a google search for stuff before you ask questions that make you look very stupid.


you'll eventually get down to the nitty gritty and find out you can create whole operating systems <cough>NT</cough> with it...

I personally would of used a real operating system, such as linux; however, I guess to each his own :p.

nvoigt
07-21-2004, 01:59 AM
In C/C++ you can program with functions like _inp/_outp, setjmp, signal, _pipe etc.

In C#, you cannot ( or not as easily ) because this level is abstracted or hidden.

C is a lower level language than C# in this case.

EvBladeRunnervE
07-21-2004, 08:17 AM
oh, there are certain non standard ways of doing it, mainly because protected operating systems attempt to shield almost all developers from the hardware access(this is why you have to go through the OS to get access to serial ports). The reason I said look up I/O is that there is a concept called 'memory-mapped I/O". memory-mapped I/O is when a hardware's I/O ports are mapped to specific memory addresses. now what do pointers do :)?

sean
07-21-2004, 12:42 PM
Ok googlee for that guy and read about his 4 points

Reading the 4 points will teach you almost nothing about system architecture. You need to go further in depth before you are capable of understanding this thread.

EvBladeRunnervE
07-21-2004, 02:46 PM
I might not be capable of undersanding this thread, but you also seem to be incapable of supporting your statements.

because our axioms that support our theorems are beyond you capability currently. I already hinted at one standard way of working on certain I/O devices.

Zach L.
07-21-2004, 02:57 PM
Just about any time you do something low-level, it will be system specific. Generality is a luxury of high-level abstraction. So, while the concrete applications of C/C++'s low-level functionality are system specific, the mechanisms (memory manipulation, mainly) that allow the low-level functionality are standard.

EvBladeRunnervE
07-21-2004, 03:43 PM
you can't do anything that low level and the thing the guys said you can

as I said, Memory-Mapped IO tends to be a standard way of mapping IO devices in modern systems(atleast it used to be), just one of the reasons the assembler in and out mneumonics exist.

VirtualAce
07-21-2004, 04:53 PM
Can't do anything low level in C????

Wrong.

You can do anything you want in C within restrictions of the OS....and for that you would use asm....but either way you should be able to accomplish the same task in both languages.


For instance all the gurus here say that interrupts are not possible in XP right? Wrong. Look at command.com and run some of your old DOS apps or your code on it. All the interrupts work fine. How is this?? Well write some code that crashes inside of command.com and watch what XP spits out.

Command.com (DOS 16-bit environment) has performed an.....blah blah blah.

Since you cannot perform interrupts in protected mode...well you can but I won't go into the IDT here, then command.com is executing your old DOS programs in virtual 8086 mode. The only way to get into virtual 8086 mode is to set the correct bit(s) in the CR0 register. XP won't let you set this.....or will it? Obviously there are ways to gain a higher privilege level in XP because command.com does it, and command.com is nothing more than another separate program written by Microsoft...it's not really part of the OS per se. So in theory I could write interrupt handlers and low level hard drive routines in C that would work under XP - given that you dismounted the volume....another convenient call inside of the XP API. This would be pretty low level and it can all be done in C. And if you don't want to use ARPL to set your privilege level then emit the correct opcode into the code stream via C.

You can do a lot of low-level stuff in C....in fact C is very very very good for low level functions.

So since command.com pops into virtual 8086 mode to execute your DOS apps, it would be possible to have your code do this as well and then call your C low-level interface functions.

With C you can program the DMA controller (was important for old school sound drivers/engines), SVGA hardware, monitor refresh rates, perform low-level IO (out* and in* family of C functions) - useful for directly programming VGA registers, floppy drive control, external device control, etc.

There are about a million things you can do and it all even works under XP contrary to what some may think. I've gotten away with murder in command.com - basically stuff that I thought Windows XP would puke on....executes flawlessly.

I'm sure you prob didn't understand much of this...but trust me you can do some pretty crazy stuff at the hardware level using pure C. All that DLL stuff you see in Windows is probably loaded into memory via C code. Probably most, if not all, of XP is written in C.

And what do you think Direct3D and OpenGL do? They access the hardware at the lowest level and many of the drivers are written in C via the DDK from MS. Most OS's, including MS's are written in C - they have a pure assembly bootstrap (since this cannot be done in pure C) that loads a pure C or C/C++ kernel and then jumps to it.

So about the only low level thing you cannot do in C that I can think of is write an OS bootstrap. That pretty much has to be in pure assembly.

nvoigt
07-22-2004, 02:22 AM
OK, lets make it simple. I can manipulate random bits in memory by using standard C pointers. I cannot do this in C# ( or only with more coding/workarounds/third party libraries ).

Therefore, C is more low level than C#.

nvoigt
07-22-2004, 02:30 AM
Why does everyone say that C is a low level language? I can't see what's the so low level thing someone could do with standard C.




Hardware interfacing. Low level means that you can do things like set bits and flags in the OS that affect hardware that you can't do in higher level languages.


In C you can set any bit in Memory you would like. Including those interfacing with the hardware like the video buffer. You cannot do this in C# ( or other higher level languages ) with such ease.

Therefore standard C is a low level language.

If this does not answer your question, please try to rephrase it.

Fordy
07-22-2004, 02:37 AM
Can't do anything low level in C????

Wrong.

You can do anything you want in C within restrictions of the OS....and for that you would use asm....but either way you should be able to accomplish the same task in both languages.


For instance all the gurus here say that interrupts are not possible in XP right? Wrong. Look at command.com and run some of your old DOS apps or your code on it. All the interrupts work fine. How is this?? Well write some code that crashes inside of command.com and watch what XP spits out.

Command.com (DOS 16-bit environment) has performed an.....blah blah blah.

Since you cannot perform interrupts in protected mode...well you can but I won't go into the IDT here, then command.com is executing your old DOS programs in virtual 8086 mode. The only way to get into virtual 8086 mode is to set the correct bit(s) in the CR0 register. XP won't let you set this.....or will it? Obviously there are ways to gain a higher privilege level in XP because command.com does it, and command.com is nothing more than another separate program written by Microsoft...it's not really part of the OS per se. So in theory I could write interrupt handlers and low level hard drive routines in C that would work under XP - given that you dismounted the volume....another convenient call inside of the XP API. This would be pretty low level and it can all be done in C. And if you don't want to use ARPL to set your privilege level then emit the correct opcode into the code stream via C.


As I understand it, those old dos programs do not run in virtual 8086...they run in a dos emulation layer (which is why lots of DOS programs wont work on NT based systems). This emulation will allow you to do a lot of things that you could do under dos - or at least simulate the ability to call interupts etc - but it's not the same as the free reign you get under virtual mode. This is why lots of old dos programs fail under windows NT

If you want complete control you need to write a driver and ask windows to load it - then you pretty much get all access. Oh...and most drivers are written in C by the way. Most real low level access that they may need is provided by a HAL that is created by microsoft for whatever processor is running - And C can call the facilities that the HAL exposes

nvoigt
07-22-2004, 06:57 AM
Any interaction with the world, other than through the console and files, is not a part of standard C.


Writing directly to the video buffer was something that could be accomplished using 5 lines of standard C without any APIs.

The resulting program wasn't portable, but that's another point. C is low level because it's perfectly possible to perform low level operations.

nvoigt
07-22-2004, 07:15 AM
If I recall correctly, in DOS Graphics mode 13 the video buffer resided at 0xA000.

So setting a pointer to this memory location, you could write to the video buffer.

Example:

unsigned char* pVideoBuffer = 0xA000;
int x;
int y;

x = 10;
y = 10;

pVideoBuffer[ (y*320)+x ] = 0;

This would put a black pixel to 10/10 of a DOS mode 13h 320*200 Monitor in pure standard C.

( You might not have a DOS Operating System installed to try this, and it will not work on windows. Also, you have to put your DOS into 13h mode which I forgot how to do, but googling should yield some results. )

Fordy
07-22-2004, 07:34 AM
( You might not have a DOS Operating System installed to try this, and it will not work on windows. Also, you have to put your DOS into 13h mode which I forgot how to do, but googling should yield some results. )


You can also check out some of the old stuff here at CProg - http://www.cprogramming.com/advtutorial.html

nvoigt
07-22-2004, 01:16 PM
No. It will write to a part of memory that is mapped to the video buffer ( DOS only ) and therefore set the color of a pixel directly.

sean
07-22-2004, 03:39 PM
It's all along the same lines, with pointers allowing you to write directly to memory. If you've ever read about a PCs boot process, you'll know all about how different programs required for startup are written to certain locations in memory. And drivers do this as well. The program above wouldn't work in Windows because all the formats, etc... are different, but basically the same thing. If you need a control that's not standard in windows (like more than just a button or a drop-down menu) you'll have to do stuff like this to code it from scratch.

EvBladeRunnervE
07-22-2004, 08:15 PM
Windows don't allow you to do anything like that ( don't know about Linux ) so in windows you are helpless with the standard

oh, you can, but you have to enter DOS 13h graphics mode, which is pretty easy:




__asm
{
mov ah,13h
int 0x10
}


then you can get a pointer to 0XA000 and go to town so to speak.


and Windows don't allow you to do anything like that ( don't know about Linux ) so in windows you are helpless with the standard

well, windows itself (with just the basic functions) wont let you do it, however, you can program through the HAL like if you were programming a driver., or you can use "wrap around" techniques to somewhat avoid Windows.

VirtualAce
07-22-2004, 08:52 PM
actually a more safe version of the code:

16-bit DOS version


typedef unsigned char BYTE;
#define XYTOMEM(x,y) (unsigned int)((y<<6)+(y<<8)+x)

BYTE far *Screen=(BYTE far *)MK_FP(0xA000,0);

//Plot white pixel at 160,100
Screen[XYTOMEM(160,100)]=15;

//Fill screen
asm {
les di,[Screen]
mov cx,07D00h
mov al,0Fh
mov ah,0Fh
rep stosw
}


That code is safer because if you specify an offset from screen >64000 then it will wrap around since it is a BYTE pointer.

You can do the same in Windows but you must get a pointer to the buffer which is easy enough.

32-bit Win32 version with faster bit blt


...
...
unsigned char *ptrMem=NULL;
//Get handle to memory from Windows
HGLOBAL memhandle=GlobalAlloc(GMEM_MOVEABLE,64000);

//Lock memory region and get pointer to first byte of region
(unsigned char *)ptrMem=(unsigned char *)GlobalLock(memhandle);

//Fill region
asm {
les edi,[ptrMem]
mov ecx,03E80h
mov eax,0FFFFFFFFh
rep stosd
}


You can also just call the API to move the memory, zero it, etc.

You don't have to use asm you could just as easily use memcpy() but memcpy() only copies BYTEs not WORDs/DWORDs. Best bet would be to have Windows do it for you with ZeroMemory() or some other memory management function the API exposes. Check the Platform SDK for more info.

nvoigt
07-22-2004, 11:01 PM
and Windows don't allow you to do anything like that ( don't know about Linux ) so in windows you are helpless with the standard


What exactly is your point ? I did show you that you can manipulate any bit in memory by using ANSI (standard) C. I provided a prominent example how this can be used to interface with hardware.

It's obvious that each operating system has it's specifics and therefore provides it's own API. ANSI C provides means of using this API. Using functions that are not standard because the platforms are non-standard is also a part of the standard.

Please clarify your point, because to me it looks like you either did not understand what was posted here, or just argue for the sake of arguing.

nvoigt
07-23-2004, 03:50 AM
Thats the nature of standards. For example a standard car has to have wheels. However, each car has different wheels and my wheels probably don't fit your car and vice versa. For a specific car you need specific wheels. Following your conclusion, this means that a standard car can never roll because it lacks wheels ( which are only available for specific cars ).


Edit:

Another thought: What language do you think the API is written in ?

ober
07-23-2004, 07:22 AM
Get a book and STFU.

Fordy
07-23-2004, 09:03 AM
Ok, if this thread starts to go off the rails I'll close it

ober
07-23-2004, 09:22 AM
sorry.. sorry. I'll keep to myself.