Ðåøèòü ïðîáëåìó ñ ìàðøàëëèíãîì ìåæäó C#-exe è Ñ++-dll

Çàäàíèå çàêðûòî
Ñòîèìîñòü:Äîãîâîðíàÿ
Ñðîê âûïîëíåíèÿ:1 äåíü
Âàðèàíòû îïëàòû:Ïî äîãîâîðåííîñòè
Äàòà ïóáëèêàöèè:2017-06-22 14:20
Îáíîâëåíî:2017-06-22 15:00
Áûë íà ñàéòå:2019-11-20 16:38

Ðåøèòü ïðîáëåìó ñ ìàðøàëëèíãîì ìåæäó C#-exe è Ñ++-dll

 
Çàäà÷à

Ïðèâåòñòâóþ.
Èìååòñÿ òàêîé êîä (C#, exe), êîòîðûé îáðàùàåòñÿ ê C++ äëëêå (íå /clr!), ïåðåêèäûâàåò åé ñòðóêòóðó, ÷òîáû òà â ñâîþ î÷åðåäü çàïîëíèëà ýòó ñòðóêòóðó äàííûìè è âåðíóëà å¸ ñîîòâåòñòâåííî îáðàòíî â C# exe: https://pastebin.com/DPuBeqBX
Ïîñëå òîãî, êàê áûëî äîáàâëåíî (òàê êàê ïîÿâèëàñü íåîáõîäèìîñòü ïîëó÷èòü ñïèñîê ôàéëîâ â òîððåíòå è îòäàòü åãî âìåñòå ñ áàçîâûìè äàííûìè ïî íåìó, êîòîðûå óæå è òàê âîçâðàùàþòñÿ íîðìàëüíî) â TorrentInfoType ñòðóêòóðó âîò ýòîò êóñîê (è â Ñ++ ÷àñòü ñîîòâåòñòâåííî òîæå):
// Files list in .torrent
[MarshalAs(UnmanagedType.LPArray)]
public TorrentInfoType_FilesList[] files;

Ýòî ñòàëî ïðîäóöèðîâàòü íà ýòîé ñòðîêå:
int tempSize = Marshal.SizeOf(typeof(TorrentInfoType));
...âîò òàêóþ îøèáêó: Marshal.SizeOf - cannot be marshaled as an unmanaged structure…

Åñëè ó âàñ åñòü îïûò ïî ìàðøàëëèíãó ìåæäó C# è Ñ++, è çíàåòå êàê ðåøèòü ýòó ïðîáëåìó, è äî÷èòàëè àæ äî ñþäà, òî íàïèøèòå ïîæàëóéñòà ìíå â ñêàéï - internat1onale, è îçâó÷üòå öåíó ðåøåíèÿ.
Ïî îïëàòå - ïåðåâîä íà êàðòó ñáåðà, ëè...

Âèäåòü ïîëíóþ èíôîðìàöèþ è îñòàâëÿòü çàÿâêè ìîãóò òîëüêî àâòîðèçîâàííûå ïîëüçîâàòåëè.
Çàÿâîê íåò

Îñòàâëÿòü çàÿâêè ìîãóò òîëüêî àâòîðèçîâàííûå ïîëüçîâàòåëè.

Äðóãèå îòêðûòûå çàäàíèÿ:

ïîèñê çàäàíèé