Newsgroup: it.comp.programmare.win32
Titolo: Problema nella migrazione di un progetto dal vc6 a vc2005

Ho ottemperato a tutte le specifiche safe CRT,esclusione del
codice deprecated (non mi risulta che il CMap lo sia ),
ma risulta questo errore al compilatore :
       c:\programmi\microsoft visual studio 8\vc\atlmfc\include
\afx.h(553) : see declaration of 'CObject::CObject'
        c:\programmi\microsoft visual studio 8\vc\atlmfc\include
\afx.h(524) : see declaration of 'CObject'
        This diagnostic occurred in the compiler generated function
'CMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::CMap(const
CMap<KEY,ARG_KEY,VALUE,ARG_VALUE> &)'
        with
        [
            KEY=_HTREEITEM,
            ARG_KEY=_HTREEITEM,
            VALUE=int,
            ARG_VALUE=int &
        ]
dove _HTREEITEM e' una mio misero tentativo di arginare ed e'
una struct handle HTREEITEM del "commctrl.h"ed  implementato in  .h
esterno dalla dll di utilizzo
#ifndef __HVLLIBSTRUCT_H__
#define __HVLLIBSTRUCT_H__
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifdef HVLLIB_IMPL_DLL
   #define HVLLIB_DECL_API  _declspec(dllexport)
#else
   #define HVLLIB_DECL_API  _declspec(dllimport)
#endif
#include <commctrl.h>
extern "C" struct _TREEITEM{};
typedef struct HVLLIB_DECL_API __TREEITEM :public _TREEITEM
{
public:
        long vuoto;//non serve a nulla
private:
public:
         __TREEITEM (){vuoto=0;}
        virtual ~__TREEITEM (){vuoto=0;}
public: __TREEITEM (const __TREEITEM& c){vuoto=c.vuoto;}
}_STREEITEM,*_HTREEITEM;
#endif
ho pure implementato una derivata di CMap includendo il costruttore di
copia
e l'operatore =
-----------.h
template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
class _BASEAPI CMyMap :
	public	CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>
{
public:
	//virtual ~CMyMap()=0;//{CObject::~CObject();}
	//CMyMap(){CObject::CObject();}
	CMyMap(int nBlockSize = 10);
	CMyMap(const CMyMap& objectSrc);//{}
	CMyMap& operator=(const CMyMap& objectSrc);//{}
	VALUE GetAt(int nIndex,KEY &rKey) const;
};
fine -----------.h
-----------.cpp
#include "stdafx.h"
#include "MyMap.h"
template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
CMyMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::CMyMap(int nBlockSize)
{
	CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::CMap(nBlockSize);
}
template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
CMyMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::CMyMap(const CMyMap &x)
{
    *this = x;
}
template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
CMyMap<KEY, ARG_KEY, VALUE, ARG_VALUE> &
       CMyMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::operator = (const
CMyMap& x)
{
    KEY rKey;
    VALUE rValue;
    POSITION pos = x.GetStartPosition();
    RemoveAll();
    while(pos != NULL)
    {
        x.GetNextAssoc(pos,rKey,rValue);
        SetAt(rKey,rValue);
    }
    return *this;
}
template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
VALUE CMyMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::GetAt(int nIndex,KEY
&rKey) const
{
    ASSERT(nIndex >= 0 && nIndex < GetCount());
    POSITION pos = GetStartPosition();
    VALUE rValue;
    do
    {
        GetNextAssoc(pos,rKey,rValue);
    }while(nIndex --);
    return rValue;
}
ma il prblema resta!
al forum  feedback della ms si sono arresi.....
e chi ha incontrato questo errore ritorna sui suoi passi...al vc6
perche ci sono mesi di lavoro sotto e non si vuole pensare di averli
persi invano
un saluto
Fabio


Grazie ho risolto...
fabio