C++ Or C++.NET

This is a discussion on C++ Or C++.NET within the C++ Programming forums, part of the General Programming Boards category; Hello all,
I am new to the boards. I am a experienced Visual Basic 6 Programmer. My boss wants me ...

C++ Or C++.NET

Hello all,

I am new to the boards. I am a experienced Visual Basic 6 Programmer. My boss wants me to write a Interactive Voice Response system (Dialogic Cards/T1s, Auto Dailers). After thinking about it, I decided that I do not want to do it in VB6. I read up on VB.NET, and what I didn't like was that anyone can decompile your code. (It frustrates me, that no one else seems to take this as seriously as I am). So, I decided I wanted to learn C++. But I am not sure which I should learn. And it is important for me to pick right, because I have will have to stick with it for a long time. So my question is: Should I learn C++ or C++.NET. I am not wanting to learn this for the above named project on hand, but I would like to get into the MMORPG Online Gaming industry. I feel that C++ is the way to go, but am I overlooking anything? I have heard rumors (from other boards), that Microsoft plans to phase out VB6, and other old compilers, and eventually the compiled code will not run on the new OS to come.

(If you are wondering why I want to move to C++ or C++.net instead of VB6.NET, it is my opinion that VB.NET is a entirely new language. If I am going to learn a entirely new language, I rather have something more powerful.)

c++ is a wonderful language, but even with a language under
your belt c++ maybe difficult to learn, specially in a short time
period which your boss may be wanting this program.

but to answer your question this is a godo place to start learning
c++ check the tutorials the FAQ, and write your programs and
when you come across a problem, simply post here with the
source, the problem, and your question, and they will help you
asap. dont forget to use code tags when you post.

IMHO you should learn either C++ or C# (I assume by C++.NET you mean managed C++). Which you choose depends on other factors that I'm not familiar with. My guess is C# would be better for you, but that is just a guess.

I wouldn't want to be learning C++ while under pressure to get a project done. It's not something you can "pick-up" in a couple of weeks. I have used some simple script-like languages that you could pick-up by quickly reading the language reference manual.... But, there isn't even a book that covers the entire standard C++ language!!! (Except for the actual language standard itself.)

I'd suggest that you use VB6, or learn VB.NET "on the job" for this project while "secretly" studying C++ at night

Should I learn C++ or C++.NET.

The normal sequence would be to learn ANSI/ISO standard C++ before going on to something specialized like the .NET stuff or GUI programming. (You can use the MSVC++.NET compiler/IDE to write standard C++.)

C++ is the language.
C++ .NET is the framework provided by MS. Syntax for managed C++ .NET is just subset of regular C++. Also when writing program for the .NET framework you shouldn't nor need to use ISO C++ libs.
But yes, you should use C++. The problem is that to write something for the .NET framework you'll need your code to be run by the VM, which implies that your code will always be decompilable, such as C#, VB, or others like Java...

you'll need your code to be run by the VM, which implies that your code will always be decompilable, such as C#, VB, or others like Java...

Why does this always need clarification? .NET uses a JIT compiler. Instead of the code being interpreted from "byte codes" like Java started with every time the program is run, the first time it is run, the JIT compiler compiles it permanently to the target source. I believe Java is also available in this configuration.

Oh no, this project will not be pressured onto me. He knows this is a project that will take me a year or more to complete. I know C++ is on a whole different level than VB. That's another reason for me to transition to a new language. VB has gotten stale, and less exciting for me.

If I were to learn MC++.NET, will 3d gaming companies see that as satisfactory?

And if anyone here uses MC++.NET, how do you cope with the thought that your source code is decompilable?

I don't think it's as decompilable as you may think. And it wouldn't really make a difference to me. If someone wants to crack my software, they'll find a way, whether they have to reverse engineer the machine code or not. And there's always obfuscation, making the job just as difficult.

If I were to learn MC++.NET, will 3d gaming companies see that as satisfactory?

It's more about being able to use the right libraries, etc... and game-specific skills. As far as I can tell, .NET's not really that big in the gaming community.

Syntax for managed C++ .NET is just subset of regular C++. Also when writing program for the .NET framework you shouldn't nor need to use ISO C++ libs.

I think you meant to say superset. The .NET stuff is additional to the standard language. And, I don't see how you how you could write a useful C++ .NET program without using any standard C++ library functions/features. If you do, are you really writing a C++ program??? (The syntax/compiler may not require your to explicitly "#include" the header files... I don'' know.)

You don't use standard libraries when writing the kernel for an OS, and there are kernels considered to be written in "C++". I've written a program in managed C++ without using the standard ISO libraries - you just use the .NET namespaces with the C++ syntax for using objects and functions, etc...

And Managed C++ doesn't support templates, for example, so it is indeed a subset.

It's all very simple: don't learn Managed C++. It's just a glue language. It's meant to provide a comparatively easy way to integrate libraries written for C++ into .Net programs. The programs themselves are meant to be written in C# or VB.Net. Managed C++ was never meant for complete programs. The syntax is just too clumsy for that.
Once you know C++ and C#, learning the bit of Managed C++ you might at one point need is just a small step.

I think you meant to say superset. The .NET stuff is additional to the standard language. And, I don't see how you how you could write a useful C++ .NET program without using any standard C++ library functions/features. If you do, are you really writing a C++ program??? (The syntax/compiler may not require your to explicitly "#include" the header files... I don'' know.)

It is a subset because, you can't have local class declarations or memeber classes. Only pointers to allocated classes from the heap. I'm not sure if you can use the reference operator.
In .net one obvously have all needed stuff to replace vector, string, list whatever from iso c++, and much more

So stuff like

Code:

class A{};
class X{
A a;
}
int main(){
X x;
}

is invalid in C++ .net, because al memory management as to be done by the GC.
the .net syntax is the same for java or c#

I have heard rumors (from other boards), that Microsoft plans to phase out VB6, and other old compilers, and eventually the compiled code will not run on the new OS to come.

Uhhhmm...take a seat. I've got some bad news for you: MS has already phased out VB6. Next time you're in a computer store, tell a clerk you would like to purchase a VB6 compiler, and see what they say. The only place you can currently buy a VB6 compiler is on ebay, and it will be used, and it will most likely have a restricted educational license.

I think for gaming, C++ is a requirement. Speed is everything with games, and C++ is the Ferrari of computer languages.

I already know its being phased out. Which is the reason for this thread. I've looked up some API's for Telephony, and its all .h .lib files. Says its written in Simple C, which I dont think will be big problem for C++.net. I was kinda hoping since Microsoft has boasted about cross language interoperablity of Visual Studio.Net, that I would be able to bring them into a VB.Net project. Naaah. Btw, the above posts, talking about subsets and supersets mean nothing to the VB Programmer. >.< Give me a few weeks, and I'll know I guess.