|
If you want to write managed .NET code, go with C# and use managed C++ for wrapping legacy code.
Don't even think about VB.NET; It is a poor language, has no advantage over C#. There are a lot of bodges in VB.NET to keep old VB programmers happy.
Everything you can do in VB.NET, you can do in C# and C# will give you a more solid code base.
Michael
Fat bottomed girls
You make the rockin' world go round -- Queen
|
|
|
|
|
that's something new. i did play with VB.NET a little, seems very nice and efficient. where can i read up a lil more on how exactly is c# better than VB.NET?
thanks!
norm
|
|
|
|
|
norm wrote:
where can i read up a lil more on how exactly is c# better than VB.NET?
I use both a lot, and I can say there are some strong points favorable to C# over VB.NET:
.C# has a much cleaner syntax. No legacy compatibility to concern about.
.It may seem stupid, but VB IDE has an auto-identing "feature" extremely annoying
.C# has the "using" statement for automatic destruction of IDisposable object instances. VB.NET code will need to use lots of Try/Catch code to do the same thing and is very probable having resource and memory leaks under it.
.C# can go "unsafe" and use pointer manipulation.
.C# can create more than one namespace per project.
.C# can control on code block basis, wether the integer arith. expressions are checked or not.
.C# can stack allocate arrays which will not be garbage collected
.By default, C# is type-safe (Option Strict On), and a clean syntax for type coercion. This is a thing VB programmers will have a hard time catching on.
.VB.NET has a very weird syntax for calling static class members
.VB.NET has two error handling models: some functions will raise errors, other exceptions. This leads to interesting bugs.
.Under C# you can have static class constructors. This can eliminate several "if x is Nothing" statements and reduce coding.
.Signed ("Strong Named") assemblies in C# can generate signed Interop assemblies right from the IDE when calling legacy COM code. Under VB.NET you'll have to resort to tlbimp.
I'm specially concerned about the C# audience and the VB.NET audience. The next version of C# has been already anounced with tons of nice and useful features, like templates, anonymous delegates and iterators. Nothing of these will be available to VB.NET soon, because it's too complicated for VB.NET programmers.
I see dumb people
|
|
|
|
|
quote: "VB.NET has two error handling models: some functions will raise errors, other exceptions. This leads to interesting bugs."
raising errors and throwing exception? arent the two the same?
norm
|
|
|
|
|
norm wrote:
raising errors and throwing exception? arent the two the same?
No, under VB.NET, not, because of backwards compatibility.
I've saw some really scary code some time ago, involving the new "On Error Goto -1" error that demonstrated they are not the same. I don't recall where I saw it, but if I find this sample again, I'll send you.
I see dumb people
|
|
|
|
|
GOTO? didnt know it still exists in dot-net.
thanks =)
norm
|
|
|
|
|
norm wrote:
GOTO? didnt know it still exists in dot-net.
Not only exists, but it needed to be "enhanced":
Local machine MSDN Link
I see dumb people
|
|
|
|
|
Oh, and I almost forgot: C# has a XML documentation feature which can generate a nice documentation, specially for big projects.
I see dumb people
|
|
|
|
|
also, direct memory manipulation in C++, is it available in C#?
can u manipulate individual bit?
what application can u see for this? Communication between Java and C++ over raw socket? what else?
norm
|
|
|
|
|
norm wrote:
also, direct memory manipulation in C++, is it available in C#?
can u manipulate individual bit?
More or less. You can have pointers and manipulate memory with them, but there are some cares that need to be taken, like pinning memory, because the GC is moving memory all the time. And the pointers are checked, which will prevent buffer overflows, memory corruption and GPFs.
Direct bit manipulation? Yes. The syntax is exactly the same of C++. And better, you have some enum candies which can do automatic bit manipulation for you. VB.NET has this too, but with an UGLY syntax.
norm wrote:
what application can u see for this? Communication between Java and C++ over raw socket? what else?
This and imaging. You have GDI+ and can do very fast coding in C# using pointer and image manipulation. Under VB.NET you are doomed to the very slow GetPixel and SetPixel for this.
I see dumb people
|
|
|
|
|
norm wrote:
VB.NET is not any slower than VC.NET.
Actually, VC.NET creates optimised IL code.
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
C# will attract all comers, where VB is for IT Journalists and managers - Michael P Butler 05-12-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|
|
thanks people. so, looks like C# is the future isnt it? with VB out of the question, which would u choose between VC.NET and C#?
norm
|
|
|
|
|
Both. I will write managed C++ when I am backed into a corner and have no other choice. In the meantime, C++ is still the fastest language out there, and I can write code that does not need the .NET runtime. But C# is very nice indeed, and will become more and more prevelant. It is *incredibly* sexy to write web apps with, as I am currently discovering.
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
C# will attract all comers, where VB is for IT Journalists and managers - Michael P Butler 05-12-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|
|
In my MFC-based MDI application, I need the CView class contained in the ChildFrame to access information stored in the top-level window of the application. I know that the CView class' parent is the ChildFrame but what is the ChildFrame's parent? Is the MainFrame the top-level window? If so, how can a function in the CView class obtain a pointer to it?
|
|
|
|
|
AfxGetMainWnd()
Roger Allen
Sonork 100.10016
In case you're worried about what's going to become of the younger generation, it's going to grow up and start worrying about the younger generation. - Roger Allen, but not me!
|
|
|
|
|
Oh good grief! I expected the answer to be simple but I didn't realize it would be *that* simple. Thanks, Roger. ^_^
|
|
|
|
|
OMG! I went krazi and messed with functions man was not meant to mess with to get the main window. And its THIS simple?? Waaaah :p
|
|
|
|
|
Hello,
I need to draw the numerical control machine that I'm moving with my program to the screen.
I want that the machine parts that must do get repositioned in the screen depending on they real position.
I've thought on drawing transparent bitmaps over the screen and moving them.
Could you give me ideas of how to get it without consuming a lot of CPU?
As I use a WM_TIMER in order to get information related to the machine, I've thought to redraw the machine each WM_TIMER message...
Thank you in advance...
|
|
|
|
|
If you are only using windows NT or XP, then you will be able to use TransparentBlt, which works quite efficiently.
Otherwise you will need to resort to a process like this:
1) Blt your image to the destination surface with the SRCINVERT flag.
2) Blt your Mask image to the destination with the SRCAND flag.
3) Blt your image to the destination surface one more time with the SRCINVERT flag.
This process requires a monochormatic mask where the black pixels are transparent on your mask.
One other method is to create a region that represents the clipped area and select this as a clipping region when you are ready to paint. However it may be more trouble than it is worth to create a region for each image that needs to be painted transparently.
Good Luck
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|
|
Hi there,
I'm not the kind of person to upgrade just for upgrading sake (if it's not broken, why fix it? ) - so is there actually any value to upgrading from VC++ 6 to VC++ 7 ?
Cheers,
Paul
//////////////////////////////
// Paul Evans, UK.
//////////////////////////////
|
|
|
|
|
At the moment, I'd say not. The next release looks more promising. If you have no need of the new ATL/MFC classes or the improved standards compliancy then the new VC7 isn't worth the hassle of upgrading just yet.
Michael
Fat bottomed girls
You make the rockin' world go round -- Queen
|
|
|
|
|
The IDE has many problems. If possible I would wait until there is a more stable version available.
Oliver
|
|
|
|
|
Oliver Anhuth wrote:
The IDE has many problems
I don't like the Project Wizard. And that one you use when adding a method or varible to a class dialog, gosh it really sucks!
I used to use that dialog before but now I add varibles and method to my classes by writing them.
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C#, ASP.NET and C++!
|
|
|
|
|
I am studying VC++7,so I often meet with the problem:the system tells you there is a problem which he can not resolve the problem,so the vc.net compiler system is going to reboot.To add a varible or a method ,I prefer to write ,which is more conveniently.
Got it
|
|
|
|
|
I would wait until Feburary when Visual Studio 2003 is released. It contains many new enhancements especially for C++ developers over VS7.
I have heard the next version described as an upgrade for VC++ 7.0 with service pack updates for all of the rest of Visual Studio.
Hope that helps.
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|