Some beginenr questions

Started by
9 comments, last by jbadams 16 years, 5 months ago
Good morning everybody, I have a few beginner questions and hopefully someone can help me out with them. - By using Visual Studio 2005 (and most likely thinking about the upcoming Orca), could be express edition or licensing the pro one, can I use C++ "normally" or am I forced to use managed code? And if its different between 2005 and 2009 editions then I'd like to know how (I guess 2005 still would allow unmanaged code while 2009 wouldn't). - From a game perspective, by using C#, can it easily be ported to other platforms? I see people talk about how portable and multiplatform C# is, but I hope this is not XBox360 + PC because frankly that's not quite the multiplatform flavour Im after. Im talking about Windows + Linux. I know there is Mono, and that other thing (can't recall the name but it was something like PG-.NET/.NETPL/.DotNETPG or a weirdo name), but can they be used for something else than "easy" applications? Don't get me wrong, but its just all I see is screenshots of wonderful I-can-do-it-in-two-days GUIs or a Sodoku game, but I'm wondering if you made something like a little complex 3D editor, would Mono be able to run it flawlessly or it is not "enough" implementation-wise for it? Or I mean, probably I haven't realized of "full-fledged" applications ported thanks to Mono (point me out to one please!! :-) ). - Does Mono provide support for WPF, or is it stuck on old Winforms? And if its the later, are Mono developers currently looking into implementing WPF or...? - Can the latest DirectX be used on simple old C++ or is it somehow "secured" so to speak, by microsoft, so that it can only be called from .NET languages (like no Code::Blocks for you and the like)? And if it is this way, can it be called from un-managed C++? (well this is a little tied to my first question). Thanks a lot to whoever takes some time to help me out a little bit ;-)
Advertisement
Visual Studio allows you to write plain c/c++ (no managed code), and I can't imagine that the new version wouldn't. DirectX can be called from regular c++, and again I would be shocked if that changed any time soon.

I haven't used mono so I will let someone else answer those questions.
Hey earlysnack,

I can't really speak to mono, I've not really had any experience with it. But I can talk a little bit about Visual studio 2005. First off, remember that Visual Studio is first and foremost an IDE. That means an integrated development environment. You don't have to compile with VS if you don't want to. You can use it to edit all your stuff, and then use something like cygwin's gcc to compile everything if you want. No, you don't have to use managed code with VS. You can use whatever you want. I think, out of the box, that VS express is designed to be used with managed code because I think that Microsoft is really pushing it. But you can still use it with regular old native c++. You might have to change some defaults or something. I've got the full VS 2005, not the express edition, so I can't really help you. But if you're a student, you can get it at a really good bargain price.

C# really is a cool language. Just strings alone makes it worth the effort of picking it up if you're an old C++ guru. But again, I can't speak to the portability of the language.

Personally, I like c or c++. They're such beautiful languages. Especially C, it's so simple. I'm sure I'm starting a flame war with this line. I know how much people hate c and c++ because of pointers, strings, and other anachronisms, but I don't care. I think they're beautiful. And pointers, like knives or guns, can be dangerous, but with care, generally you're fine.

- Goishin
Quote:Original post by small_black_sun
Visual Studio allows you to write plain c/c++ (no managed code), and I can't imagine that the new version wouldn't. DirectX can be called from regular c++, and again I would be shocked if that changed any time soon.

Thanks, just wanted to be sure. I think most 3D engines nowadays like epic's or ID's or Crytek's are "unmanaged" C++ based and they are all using VS 2005 Professional, same with DirectX.

Quote:Original post by Goishin
Hey earlysnack,

I can't really speak to mono, I've not really had any experience with it. But I can talk a little bit about Visual studio 2005. First off, remember that Visual Studio is first and foremost an IDE. That means an integrated development environment. You don't have to compile with VS if you don't want to. You can use it to edit all your stuff, and then use something like cygwin's gcc to compile everything if you want.

Yeah, this is sort of an already feasible scenario within the C++ realm. But that's why I am kind of asking if the same is true for C# or not (if you can see, I am a somehow not-newbie-anymore C++ programmer, wanting to drop it for C#).

Quote:Original post by Goishin
No, you don't have to use managed code with VS. You can use whatever you want. I think, out of the box, that VS express is designed to be used with managed code because I think that Microsoft is really pushing it. But you can still use it with regular old native c++. You might have to change some defaults or something. I've got the full VS 2005, not the express edition, so I can't really help you. But if you're a student, you can get it at a really good bargain price.

Thanks for the reassurance.

Quote:Original post by Goishin
C# really is a cool language. Just strings alone makes it worth the effort of picking it up if you're an old C++ guru. But again, I can't speak to the portability of the language.

Personally, I like c or c++. They're such beautiful languages. Especially C, it's so simple. I'm sure I'm starting a flame war with this line. I know how much people hate c and c++ because of pointers, strings, and other anachronisms, but I don't care. I think they're beautiful. And pointers, like knives or guns, can be dangerous, but with care, generally you're fine.

I love pointers in C++. In fact I love C++.
But unfortunately there is this guy called Bill Gates, which happens to be the most one of the richest guys alive, pushing his own technology and menacing us old schoolers to make a decision.
If it was for me I'd stick to C+ but I am unsure, I think in the future C# will reign but of course I don't take anything for granted.
Hence, I wanna know a bit more about real portability in C# realm.

Thanks a lot guys, now if someone with experience in Mono could complement the post, I'd really appreciate it.

Hello,

I have some issues with what you said here:
Quote:Original post by earlysnack
But unfortunately there is this guy called Bill Gates, which happens to be the most one of the richest guys alive, pushing his own technology and menacing us old schoolers to make a decision.
If it was for me I'd stick to C+ but I am unsure, I think in the future C# will reign but of course I don't take anything for granted.


What do you mean exactly? From my understanding it seems like you are putting off all the other programming languages, and saying C++ is the god or something. There is so many programming languages that is used now a days. Also, yes C++ is used a lot now a days, but there is a lot of other programming languages that is used. For example, I know a friend who has to learn SAS programming for a medical job she has, which preferably is used in the medical industry. Also, you do know pointers can be used in C#, but they have to be used in the unsafe area. The reason is that pointers are dangerous when not used correctly.

Another thing is that to say that Bill Gates is pushing his own technology and menacing the old schoolers to make a decision is kind of wrong. Especially to use C# as an example of it. A better example would have been Microsoft Windows, except the part about menacing old schoolers would not fit. Also, what about the people who do not own a Microsoft Windows computer? They would not be particularly phased by Bill Gates pushing C# to be more widely used. Even though they can use C#, but it probably won't be as big on non-Microsoft platforms. Basically just be careful on how you say things.

Sincerely,
Carl J. Loucius


Microsoft isnt pushing anyone to use C#. They're definitely focusing a lot of effort on C# and .Net I belive but not with the intention of pushing people to use it. Naturally a lot of people will be inclined to use it because it is great.

But still there will be c++ developers, java, and all the others. I looked a mono a bit today for other reasons than this post and the portability of c# is rather portable.

I'm not sure how c++ is, but when I programmed in C way back when I remember having to change things around in my code to make things work between windows and a linux system. From what it looks if you used mono you could write code and not have to change anything for standard programs no matter what platform you're using your code on. I'm sure theres exceptions there especially in game development.

But hopefully someone who actively uses mono will step in and verify how true that is and the rest of your questions.
1. The Visual C++ 2005 Express Edition can compile native, non-managed applications, but the functionality isn't enabled by default; to do so you also need to install the Platform SDK and edit a couple of options as described in the instructions for Using Visual C++ 2005 Express Edition with the Microsoft Platform SDK. The 2008 versions ('Orcas') will undoubtedly continue to offer this functionality.

2. The alternative to Mono that you're thinking of is DotGNU Portable.NET, which is unfortunately extremely immature and not really very useable in it's current state although it's likely to improve in future, particularly given Microsoft's announcement that they'll be Releasing the Source Code for the .NET Framework Libraries under the Microsoft Reference Licence.

3. Portability through Mono is excellent, and improving constantly. The Mono website has a page listing some Companies Using Mono if you're interested in looking at some of the pieces of software being built with Mono such as Unity, a multi-platform game development tool. The Mono Project Roadmap may help to answer any questions you may have about exactly what Mono supports and is planning to support in future. They also have a page of Guidelines for Application Portability you could take a look at.

4. DirectX isn't in any way 'locked' to managed languages, and there's nothing to prevent you using any IDE you like (Code::Blocks for example) as long as you have the know-how to do so.


Hope that helps. [smile]

- Jason Astle-Adams

Quote:Original post by dillscon
Microsoft isnt pushing anyone to use C#. They're definitely focusing a lot of effort on C# and .Net I belive but not with the intention of pushing people to use it. Naturally a lot of people will be inclined to use it because it is great.

I am a little concerned about the inclination part... seems like not just a few people but quite a lot (millions?) have..

Quote:Original post by dillscon
From what it looks if you used mono you could write code and not have to change anything for standard programs no matter what platform you're using your code on. I'm sure theres exceptions there especially in game development.

Yeah, thats my main concern. I know that probably for standard desktop applications it's fine but then you add something else like what you'd need for game dev and you're doomed.

Quote:Original post by jbadams
1. The Visual C++ 2005 Express Edition can compile native, non-managed applications, but the functionality isn't enabled by default; to do so you also need to install the Platform SDK and edit a couple of options as described in the instructions for Using Visual C++ 2005 Express Edition with the Microsoft Platform SDK. The 2008 versions ('Orcas') will undoubtedly continue to offer this functionality.

2. The alternative to Mono that you're thinking of is DotGNU Portable.NET, which is unfortunately extremely immature and not really very useable in it's current state although it's likely to improve in future, particularly given Microsoft's announcement that they'll be Releasing the Source Code for the .NET Framework Libraries under the Microsoft Reference Licence.

3. Portability through Mono is excellent, and improving constantly. The Mono website has a page listing some Companies Using Mono if you're interested in looking at some of the pieces of software being built with Mono such as Unity, a multi-platform game development tool. The Mono Project Roadmap may help to answer any questions you may have about exactly what Mono supports and is planning to support in future. They also have a page of Guidelines for Application Portability you could take a look at.

4. DirectX isn't in any way 'locked' to managed languages, and there's nothing to prevent you using any IDE you like (Code::Blocks for example) as long as you have the know-how to do so.


Hope that helps. [smile]

1. Wow. That answer actually put me on my knees. Somehow I was just thinking about C++ and C# but hadn't given the platform SDKs a thought :(
Another thing to think about, since I guess, the platform SDK is old and unsupported, since microsoft has WPF (and formerly WinForms) with its .NET.
2. Oh yes, I had forgotten the name already :P
3. Thanks, I checked the links. Seems like most of 2.0 is done. But unfortunately when they talk about WPF, they refer me to Olive subproject and it doesn't talk about WPF at all :(
I guess the conclusion is, WinForms 2.0 is to be finished next year, so it will be a while for WPF to be supported...
4. Got it.

Thanks heaps for your time guys!! :)

PD: I hadn't been to gamedev for a long time, but I think jbadams you changed your name uh? :P
Hello,

Please visit this wiki: about microsoft windows sdk. It will clear up about the one statement you made about it being old and not supported anymore, which is wrong.

Sincerely,
Carl J. Loucius
Quote:Original post by acddklr07
Hello,

Please visit this wiki: about microsoft windows sdk. It will clear up about the one statement you made about it being old and not supported anymore, which is wrong.

Sincerely,
Carl J. Loucius


The Windows SDK and Platform SDK are not the same thing. The former supersedes the latter.
[TheUnbeliever]

This topic is closed to new replies.

Advertisement