Na poczatek zaznacze ze jestem nowicjuszem :)
Przy probie kompilacji kodu napisanego pod VS6 w VS2005 kompolator wyrzucil mi bledy dotyczace konwersji np przy wywolaniu tej funkcji:
SecureZeroMemory(i->second.begin() , i->second.size());
kompilator nie mogl przekonwertowac pierwszego argumentu z iteratora na PVOID
a przy funkcji :
void readFromBuffer(std::basic_string<T> &val)
{
readBytesFromBuffer(val.begin(), size sizeof(T));
}
parametr val.begin moze byc rzutowany na type BYTE bo wlasnie takiego typu spodziewa sie funkcja
Poprawilem te bledy tak ze kompilator juz nie ma zastrzezen ale czy takie rzutowanie ma sens?. I czy nie nie zmieni dzialania programu ?
A oto przerobki:
PVOID param1 = &(i->second.begin());
SecureZeroMemory(param1 , i->second.size());
i
void readFromBuffer(std::basic_string<T> &val)
{
std::string::iterator iter = val.begin();
BYTE* param = reinterpret_cast<BYTE *>(&iter);//
readBytesFromBuffer(param, size * sizeof(T));
}
z gory dzieki za pomoc