Visual Studio is pissing me off...



  • For many years I used to use Visual Studio 2003 and eventually 2005 for .Net Programming so virtually 90% of my Visual Studio experience has been with .Net Projects. In those projects, I can in meaningful ways structure my code which comes in handy when you have a project with a few hundred source if not in the thousand range source files. Structure my code meaning categorized subdirectories for everything which in the .Net Projects automatically become namespaces. Perfectly, beautiful, loved it.

    Most my C or C++ development has always been under Linux using Eclipse. Again eclipse allows me to beautifully structure my project with subdirectories for all the various files. I want to create a class in a certain subdirectory of my project, just gotta right click that subdir in my project tree and choose the option to create a class. Works like a charm.

    WHY THE FLYING RATS ASS FUCK can't visual studio STILL not do this in TWO THOUSAND FRIGGING EIGHT!? Why the flying fucking hell does it want to put EVERY .cpp and .h file in the ROOT directory of my project!? Why can't I go create a subdir in the project dir, right click on that subdir, choose "create class" and get a class created, IN THAT FRIGGING SUBDIR!? Just happens that one of my personal projects I'm going to be working on is heavily DirectX based so obviously for windows development Visual Studio should be the way to go. But fer crying out loud, why is basic essential functionality like this missing? Does Microsoft SERIOUSLY expect me to put every file into the project root dir? Do they seriously expect to manually move the files around if I don't want to do that? Is this seriously the so called INDUSTRY STANDARD? 

    Makes me wish Eclipse was more of a viable option for C++ windows development but compiler wise it just simply sucks. The GCC version MingW uses is way dated (though I suppose I could try to use it to compile the latest GCC) but still, not really sure how well I trust MingW. I'd rather stick to Microsoft's compiler and libraries when targetting Microsoft's operating system.

    I realize Visual Studio does give sort of an option to change the directory it creates the class in with its class wizard but it is such a half-assed and broken functionality that it's worthless. Got to do it seperately for the .h and .cpp file and when you go to the directory you want to create the file in, and click "Open" in the file dialog it whines that the file I'm wanting to create doesn't exist. NO SHIT! I'm creating it! This in itself is one giant WTF.

    So how does everyone else deal with this under windows doing C++ projects? There has got to be a reasonable way...



  • Perhaps this will help?

    <font size=1>iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAIAAABvFaqvAAACY0lEQVR42q2TS2gTURSG72JiwV1VhGqjQajE+lqJlLoyhEipohiJCx+VLqRUkRSVIj4igqJFqY8E3WlBIRoULLowCwV1W8SFddWNSHxRx2TuZObOfXhubggzkylFG/7hMHPmnO/+50yiVQyCUAukCS4WDJHSeMtAgi8YIuUfrVicTKVS+XzeHePxnfODfKNBpy8mk8lCoRCL9c8H8o6mXAhRF2R0XZ/9Ov1kYrpRs71/oL19aRMoyBGHrICh5avHD24PjWSQIIIRxKt372QzJ4+cvpjtWNHpAfl2pBzVQZxTSmWW24IDxRTMgqdTZzLXLgynz94Mh1e7HHlHU44YZ3CAwnWv3yy4XaNUBTVLpW9jlzNQc2B/4vW7Ty5QkKO3H37VIMgi3OCbHhZ/9kbpqmUwnXl+dJ9gGIgbtqXdvZraqM8RKNETbiTvPf08Mv7x0uDy6EoqKAYQYgbk3b2am9JwZNuOO6kb9PjB3vSNybGhJd2dRPAay9uo+XqUo2otef9lCWJPNPQHkyvZF7D6E+NfXl1dDAPC54NX7l6NeEHKEcby6wz0dUDElnNs71o9Efn+o3Tu+nP4EIhZogZy9/oddXVtmZqaqWAT7nPPZnS98tsoY1M+Ht6xBnG6MXarUex1RDwgpYohHR3dFTEtVsa2gYlpM1KdZdSZePSmUebu9TtSKlek89Hce+VF6VA8AmsKrJcg347qIMO0CB3es444jkXgNy3/LW1tGmc0sF6Cmk8ILdKA0zeYg3vm2NAL/RAFp4KzuR017Qgyu7dGEIIrQIE7laC5TvhXBe/oP9QyR38BZvqzuxqqyRQAAAAASUVORK5CYII=</font>

    It was too small to host...



  • @Spectre said:

    It was too small to host...

    Seriously, why the fuck have people started doing this?  This isn't Usenet, you can post images inline.  Really, cut it out, it's annoying for the rest of us.  Oh, and here's the image for anyone who doesn't want to waste the time decoding it:




  • It's been a while since I've done any serious C++ in Visual Studio, but at my previous job the lead developer had created plugins/toolbars in Visual Studio to add the functionality that we felt was missing. I think you can find the necessary information by searching for "visual studio extensibility" in google. It's not too hard. Even I was able to create a plugin to switch between different source control providers and adapt the necessary parameters



  • @bjolling said:

    It's been a while since I've done any serious C++ in Visual Studio, but at my previous job the lead developer had created plugins/toolbars in Visual Studio to add the functionality that we felt was missing. I think you can find the necessary information by searching for "visual studio extensibility" in google. It's not too hard. Even I was able to create a plugin to switch between different source control providers and adapt the necessary parameters
     

    See, this is why I'm always annoyed at Microsoft products. First they expect me to pay significant amounts of money for their product and then when you get it I have to go extensively out of my way to try to make it useful.

    With regards to C++ projects, I remember Visual Studio's intellisense sucking in 2003. I remember it sucking in version 2005. It still sucks in 2008! Why?

    The "Show all files" thing posted in the above message helped a lot, thanks for that. Visual Studio still insists on placing any new classes or files in the root directory but at least I can easily drag them to where they are supposed to be now. While a minor annoyance, I can live with this.

    Why are there no refactoring abilities? Why is there no decent auto complete such as automatically placing a closing } bracket when I put a { bracket. I could go on with the list of features I am extremely missing from Eclipse.

    If Microsoft was giving this away for free then I wouldn't complain. Since that is not the case however I do have to say I find it annoying.

    Makes me wonder what the developers at Microsoft use? Don't they use Visual Studio? I mean, how can they use it and not have the same or similar thoughts I have and think "gee, maybe this feature would make my life using our own product so much easier, let's add it!"

    On that note, I do realize there are a bunch of 3rd party extensions for Visual Studio that I suppose can put it into a more useful state. Any suggestions from anyone on a package that is particularly well done?

    Thanks!



  • @Kermos said:

    With regards to C++ projects, I remember Visual Studio's intellisense sucking in

    1. I remember it sucking in version 2005. It still sucks in 2008! Why?

    Because C++ is tricky business. Also, I don't remember it sucking, aside from some standard library-related thingies.

    Also, I guess you never worked with C++ Builder [i](shudder)[/i].

    @Kermos said:

    Any suggestions from anyone on a package that is particularly well done?

    I heard good things about [url=http://www.wholetomato.com/]Visual Assist X[/url], but I haven't tried it myself.



  • @Spectre said:

    @Kermos said:
    With regards to C++ projects, I remember Visual Studio's intellisense sucking in

    1. I remember it sucking in version 2005. It still sucks in 2008! Why?

    Because C++ is tricky business. Also, I don't remember it sucking, aside from some standard library-related thingies.

     

    Eclipse gets it right...for instance:

    I start to type the name of a member variable. Ctrl+Space will then either auto-complete or give me a list of possible matches. Then I put the . or -> to access a member of that class, ctrl+space again will instantly give me a fully listing. A couple keystrokes later I've narrowed it down to the exact member I want, hit enter, done. This works only very very very sporadically in Visual Studio...hence why I say it's intellisense sucks. Sometimes it'll give me a listing, sometimes (and this is the mostly the case) it just simply will give me nothing. I'm just used to one that works 100% correctly 100% of the time. 

    The thing that gets me though is, Microsoft gets it right with C# projects. The intellisense there works flawessly. Why if it works flawessly there, doesn't it with C++? Stuff like that really annoys me. Seems to me that MS stopped giving a crap about anything C++ in their IDE. Just the impression I get.

    @Spectre said:

    Also, I guess you never worked with C++ Builder (shudder).

    Nope, haven't. Like I said, most my C++ dev has been using eclipse under Linux.

    @Spectre said:

    I heard good things about Visual Assist X, but I haven't tried it myself.

    Thanks, will check that out.

     



  • @Kermos said:

    I start to type the name of a member variable. Ctrl+Space will then either auto-complete or give me a list of possible matches. Then I put the . or -> to access a member of that class, ctrl+space again will instantly give me a fully listing. A couple keystrokes later I've narrowed it down to the exact member I want, hit enter, done. This works only very very very sporadically in Visual Studio...hence why I say it's intellisense sucks. Sometimes it'll give me a listing, sometimes (and this is the mostly the case) it just simply will give me nothing. I'm just used to one that works 100% correctly 100% of the time.

    Check the status bar. It's probably saying something akin to ". or -> used incorrectly" or the other option "<foo> is not a class or namespace". C++ intellisense seems to choke on some of the features in templates combined with namespacing. I have had it fall flat on its face by moving the simplest of templated functions into a namespace different from that in which it ends up being used. Multiple inheritance is another issue. Sofar I haven't seen any weird goings-on with intellisense as long as I don't use templates in other namespaces (just 'using std' seems to work fine...) and don't use multiple inheritance. Fine mess that leaves you with though...

    @Kermos said:

    The thing that gets me though is, Microsoft gets it right with C# projects. The intellisense there works flawessly. Why if it works flawessly there, doesn't it with C++? Stuff like that really annoys me. Seems to me that MS stopped giving a crap about anything C++ in their IDE. Just the impression I get.

    C#'s underlying language structures are much, much easier to parse and interpret than the gobble-dee-gook C++ has to be able to handle. Also; consider the fact that C# has that nifty reflection namespace, which will allow you to do extensive runtime analysis to the point where the functioning (as in syntactically correct) parts of a class can be compiled on the fly into an in-memory assembly which is then queried by the reflection namespace's classes for auto-completion features and the like. (Actually wouldn't be one bit surprised if that is how it works.)



  • @Ragnax said:

    Sofar I haven't seen any weird goings-on with intellisense as long as I don't use templates in other namespaces (just 'using std' seems to work fine...) and don't use multiple inheritance. Fine mess that leaves you with though...
     

    I've seen Intellisense fall flat on it's face even with much simpler stuff then that. I've seen it work perfectly fine then suddenly decide it won't work anymore (and yes, verified I had no typos and correctly used . or ->). Overall I find it's reliability rating to fall somewhere between piss-poor and utterly abysmal.

    @Ragnax said:

    C#'s underlying language structures are much, much easier to parse and interpret than the gobble-dee-gook C++ has to be able to handle.

    So? I'll take the excuse "it's too complex" from some little open source project. I won't take that excuse from a software developer the size of Microsoft that charges a decent amount of money for their product. I especially won't take that excuse when a free product out there has absolutely zero problem with any gobble-dee-gook C++ I've thrown at it so far. Namespaces? No problem. Templates? No problem. Multiple Inheritance? No problem. You can twist and combine and gobble those things together in any fashion you want, I've not a single time seen Eclipse choke on it. Those guys have my most sincere respect for pulling that one off. If only they'd now release something for it that would allow seamless integration of Microsoft's compiler and debugger into the IDE I'd be using it in a heartbeat. It actually is possible to use the compiler via custom makefiles but can't use the debugger so that ultimately isn't all that useful until the integration is fully there and seamless.

    Or another option I'd go for is if GCC would get support for directly linking to Microsofts libraries instead of me having to rely on something like MingW which among other issues is incomplete as it has only d3dx9.lib (and that one is about a year old), no d3dx9.lib and let's not get into DX10. 




  • @Kermos said:

    it has only d3dx9.lib
    @Kermos said:
    no d3dx9.lib

    I sense some inconsistency.



  • @Spectre said:

    @Kermos said:
    it has only d3dx9.lib
    @Kermos said:
    no d3dx9.lib
    I sense some inconsistency.

    Haha, sorry about that. I meant "It has only d3d9.lib but no d3dx9.lib" =)

     



  • @Spectre said:

    Because C++ is tricky business


    Erm, well in Visual Studio 6.0 (that's 1998, people), Intellisense worked perfectly well. Then Microsoft decided to make it "more accurate", and as a result broke it completely. It's fairly hopeless in both Visual Studio 2005 and 2008. I don't use templates extensively or stdlib, so that's not the explanation. I just know that, on exactly the same code base, with exactly the same projects, Intellisense in VS6.0 consistently works and VS2005/2008 it consistently fails. 

    Of course, there were some cases that gave the parser trouble in VS 6.0. It wasn't 100% accurate, but then it wasn't meant to be. It was meant to be fast and dirty, and useful most of the time. That was the right implementation.

    I guess a lot of smart people have left Microsoft. 



  • @LordLiverpool said:

    Erm, well in Visual Studio 6.0 (that's 1998, people), Intellisense worked
    perfectly well.

    C++ [url=http://www.medini.org/software/msviscxx/msviscxx.html]didn't[/url], however. Maybe the additional complexity introduced since then crippled Intellisense? Then again, maybe not.



  • So I guess I'm the only one that has had tons of problems with the C++ intellisense in Eclipse?  BTW, you can use the visual studio compiler with Eclipse CDT.



  •  @Spectre said:

    C++ didn't, however


    It's pretty unlikely that making C++ more standards-compliant broke Intellisense. And, in fact, we know what broke Intellisense. Just check the Visual Studio blog. Essentially, they tried to fix the cases where Intellisense used to get it wrong, and in the process managed to totally break it. They themselves confess that they are going to completely rework it for the next version of VC++ (Orcas+1). 

    What is incredible is that, despite the fact that the forums are filled with people saying the same thing - Intellisense in C++ doesn't work any more - Microsoft failed to identify this problem before releasing VC++ 2005. Worse still, they failed to do anything substantive about it in another release THREE YEARS LATER. Microsoft has become such a huge, lumbering bureaucracy that it cannot react quickly to fix problems. Its development system prevents rapid fixes, but allows idiotic decisions to be taken and have disastrous consequences. The miserably slow performance of all recent Microsoft products (Vista, Visual Studio, SQL Server 2005...) is another example of this. 



  • @LordLiverpool said:

     The miserably slow performance of all recent Microsoft products (Vista, Visual Studio, SQL Server 2005...) is another example of this. 

     

    oh?


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.