#74 Visual C++ 2005

closed
nobody
None
5
2006-06-30
2006-06-30
jachymko_
No

hi,

aren't you considering upgrade to MSVC++ 2005? There
is a free 'Express' edition available for everyone,
http://msdn.microsoft.com/vstudio/express/visualc/ and
i think it has everything neccessary to compile the
console :)

it would be great, as i wouldn't need to upgrade the
project every release :))))

and whats more important, there are some deprecated
("unsafe") functions used, as well as some
incompatibility in manifest embedding, which causes
the linker to die with funny error 'failure during
conversion to COFF; fille invalid or corrupt'.

and you need to move the loop counter
declaration+initialization outside a for loop to be
available in the scope after the loop (?)
(ConsoleHandler.cpp:180(cca), next to the lovely
ReadConsoleOutput :)))

and in SharedMemory.h, you need to use an ampersand to
reference the SharedMemory<T>::Release method

template <typename T> explicit
SharedMemoryLock(SharedMemory<T>& sharedMem)
: m_lock((sharedMem.Lock(),
&sharedMem), mem_fn(&SharedMemory<T>::Release))
{
}

Discussion

  • Logged In: YES
    user_id=16767

    VS 2005: I use what we use in my company. We currently use
    VS 6 for some older projects, and VS 2003 for the new stuff.
    At the moment, we don't have the time to migrate all of our
    projects to 2005, and we don't have the need for .NET 2.0
    (yet :-) And I don't feel like installing *another* IDE version.

    For loop: yes, I know that VC2005 compiler has changed for
    variables handling, I'll put the declaration outside of the
    loop, so you don't have to do it each time you upgrade the
    project :-)

    mem_fn: nice catch, thanks :-) Why did't the compiler catch
    this?

     
  • Logged In: YES
    user_id=16767

    About mem_fn: I forgot to mention, I'm using boost's mem_fn
    class, I should've written it explicitly in the code:
    boost::mem_fn. I have fixed this now.

    Interestingly enough, both

    mem_fn(&SharedMemory<T>::Release)
    and
    mem_fn(SharedMemory<T>::Release)

    work ok (the Release method gets called). It seems that
    boost::mem_fn allows both (I didn't check the docs now, and
    just looking at some of Boost template code gives me a
    headache :-)

     
  • jachymko_
    jachymko_
    2006-06-30

    Logged In: YES
    user_id=1545227

    seems the behavior changed in vc++2k5 and it compiles only
    the ampersand version.

    oh, you are doing such a BIIIIIIG mistake :)) the ide hasnt
    improved so much for c++ as it has for c#, but they claim
    the C++ compiler is now 99.98% standard-compliant and
    overall, the studio feels much more polished.

    and its only the C++, not a whole studio, thats just a few
    bytes ;)

     
    • status: open --> closed