Приветствую.
Имею такой код (C#), который обращается к C++ дллке (не /clr!), перекидывает ей структуру, чтобы та в свою очередь заполнила структуру данными и вернула её соответственно: https://pastebin.com/DPuBeqBX
Ошибка начала появляться после того, как я добавил (так как появилась необходимость получить список файлов в торренте и отдать его вместе с базовыми данными, которые уже и так возвращаю нормально) в TorrentInfoType структуру вот этот кусок (и в С++ часть соответственно тоже):
// Files list in .torrent
[MarshalAs(UnmanagedType.LPArray)]
public TorrentInfoType_FilesList[] files;
Без этого куска, работает нормально. Ошибка соответственно возникает вот тут: int tempSize = Marshal.SizeOf(typeof(TorrentInfoType));
И просто для референса, на стороне С++ структуры выглядят так: https://pastebin.com/43RDUdQx
И потом в С++ной части в функции dll_TorrentGetInfo я вызываю функцию для копирования в структуру которая потом возвращается в C#:
void TorrentInfo::CopyInfo(TorrentInfoType* dest) const
{
dest->IsValid = IsValid();
dest->name = _wcsdup(GetNameW().c_str());
dest->hash = _wcsdup(GetHashW().c_str());
dest->creationDate = GetCreationDate();
dest->creator = _wcsdup(GetCreatorW().c_str());
dest->comment = _wcsdup(GetCommentW().c_str());
dest->IsPrivate = IsPrivate();
dest->totalSize = GetTotalSize();
dest->filesCount = GetFilesCount();
dest->pieceLength = GetPieceLength();
dest->piecesCount = GetPiecesCount();
// TODO: Fill files list.
// ...
}
Поясните пожалуйста новичку, что делаю не так, и как можно исправить проблему :-\
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Делаю дерево категорий, каждая категория может быть родительской и иметь определенное место на текущем уровне, те
По умолчанию выборка содержит все поля документа, но мне не нужны все поляНапример, имеется коллекция users вида:
Имею List<Class>, который раз в N минут обновляется путем десериализации JSON файла, у коллекции реализован INotifyPropertyChanged для грамотного привязывания...