Thread: C++ Or C++.NET

  1. #1
    Registered User
    Join Date
    Jun 2005
    Posts
    10

    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.

    I need intellectual replies only please, and Thank you,

    CrymsonSoul

  2. #2
    Registered User
    Join Date
    Jun 2005
    Posts
    10
    (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.)

  3. #3
    Banned
    Join Date
    Jun 2005
    Posts
    594
    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.

  4. #4
    Registered User
    Join Date
    Jan 2005
    Posts
    7,366
    >> Should I learn C++ or C++.NET.

    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.
    Last edited by Daved; 06-14-2005 at 07:10 PM.

  5. #5
    Hardware Engineer
    Join Date
    Sep 2001
    Posts
    1,398
    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++.)
    Last edited by DougDbug; 06-14-2005 at 07:05 PM.

  6. #6
    Registered User
    Join Date
    Jun 2004
    Posts
    722
    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...

  7. #7
    Registered User
    Join Date
    Sep 2001
    Posts
    4,912
    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.

  8. #8
    Registered User
    Join Date
    Jun 2005
    Posts
    10
    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?

  9. #9
    Registered User
    Join Date
    Sep 2001
    Posts
    4,912
    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.

  10. #10
    Hardware Engineer
    Join Date
    Sep 2001
    Posts
    1,398
    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.)

  11. #11
    Registered User
    Join Date
    Sep 2001
    Posts
    4,912
    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...

  12. #12
    Cat without Hat CornedBee's Avatar
    Join Date
    Apr 2003
    Posts
    8,895
    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.
    All the buzzt!
    CornedBee

    "There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code."
    - Flon's Law

  13. #13
    Registered User
    Join Date
    Jun 2004
    Posts
    722
    Quote Originally Posted by DougDbug
    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#
    Code:
    class A{};
    class X{
        A* a;
        X() : a(new A()){}
    }
    int main(){
        X *x = new X();
    }

  14. #14
    Registered User
    Join Date
    Apr 2003
    Posts
    2,663
    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.

  15. #15
    Registered User
    Join Date
    Jun 2005
    Posts
    10
    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.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. migrate from .Net 2.0 to .Net 3.0
    By George2 in forum C# Programming
    Replies: 3
    Last Post: 07-25-2007, 04:07 AM
  2. Some .NET Distribution Stats
    By nickname_changed in forum C# Programming
    Replies: 2
    Last Post: 05-14-2005, 03:41 AM
  3. IE 6 status bar
    By DavidP in forum Tech Board
    Replies: 15
    Last Post: 10-23-2002, 05:31 PM
  4. .net
    By ygfperson in forum A Brief History of Cprogramming.com
    Replies: 18
    Last Post: 02-15-2002, 01:15 AM
  5. Visual J#
    By mfc2themax in forum A Brief History of Cprogramming.com
    Replies: 0
    Last Post: 10-08-2001, 02:41 PM