KADABRA
Великий покусатель | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору WiseAlex Цитата: указатель ссылается на данный, а при копировании указателя в другой комп на что он будет ссылаться? Читай книги(извини за возможный снобизм ответа, но без этого никак). | Так я же не копирую объект целиком, а по частям, потому и спрашиваю, почему в моём случае этого не будет. Цитата: сериализации, которая уже есть в mfc а зачем? бери готовое решение и не мучайся | Своё всегда прятней . И работает. Добавлено А вот и русские буквы в строке логут быть: Код: #include <iostream> #include <Windows.h> using namespace std; typedef unsigned char BYTE; int main() { int iLen; int a = 436; unsigned int b =5445644; long as = -345346345; int iStrLen; wchar_t c[39]; wcin.getline(c, 38); // wcscpy(c, ("asdf _ ~&* ds")); iStrLen = wcslen(c); iLen = (sizeof a) + (sizeof b) + (sizeof as) + (sizeof iStrLen) + iStrLen * sizeof (wchar_t); BYTE * buf = new BYTE[iLen]; int i = 0; memcpy(&buf[i], &a, sizeof a); i = i + sizeof a; memcpy(&buf[i], &b, sizeof b); i = i + sizeof b; memcpy(&buf[i], &as, sizeof as); i = i + sizeof as; memcpy(&buf[i], &iStrLen, sizeof iStrLen); i = i + sizeof iStrLen; memcpy(&buf[i], &c, iStrLen * sizeof (wchar_t)); i = i + iStrLen * sizeof (wchar_t); wcout << a << ' ' << b << ' ' << as << ' ' << iStrLen << ' ' << c << ' ' << i; a = b = as = iStrLen = 0; i = 0; cout << "\n\n\n000\n\n\n"; memcpy(&a, &buf[i], sizeof a); i = i + sizeof a; memcpy(&b, &buf[i], sizeof b); i = i + sizeof b; memcpy(&as, &buf[i], sizeof b); i = i + sizeof as; memcpy(&iStrLen, &buf[i], sizeof iStrLen); i = i + sizeof iStrLen; wchar_t * str = new wchar_t[iStrLen + 1]; memcpy(str, &buf[i], iStrLen * sizeof (wchar_t)); i = i + iStrLen * sizeof (wchar_t); str[iStrLen] = '\0'; wcout << a << ' ' << b << ' ' << as << ' ' << iStrLen << ' ' << str << ' ' << i; cin.get(); cin.get(); } |
---------- Это не подпись. |
|