Проблема в использовании PInvoke структура в C#
я хочу, чтобы вызов PInvoke на C структура в C#
мой с структура
typedef struct { u64 Parent; // index in the folders list u64 FileSize; // file size u64 Delta; // delta offset on drive FILETIME Modified; // modified time FILETIME Created; // created time FILETIME Accessed; // accessed time u16 *NameExtStr; // name of file u16 *PartitionStr; // partition or drive name u16 *CommentStr; // if not null then comment about file state size_t OverwrittenIndex; // index of file that overwritten this file u64 LostCluster[LOST_COUNT]; // overwritten clusters # u64 LostClusters; // lost clusters count u64 TotalClusters; // total file clusters u8 Exists:1; // file existence flag u8 State:5; // state of file u16 Hidden:1; u8 FoundByDeepScan:1; // tells if file found by deep scan u8 Attr; // attribute } FileInfoStruct;
и мой код на языке Си
typedef void *myHandle; // returns file info for one of found files found, Idx - index of file of interest BOOL GetFileInfoNew(myHandle Undelete, size_t Idx, FileInfoStruct **FileInfo, FileDetailsStruct *FileDetails) { UndeleteStruct *UndeletePtr = (UndeleteStruct *)Undelete; *FileInfo = &UndeletePtr->Search.FilesList.FilesPtr[Idx].fi; // return file description FileDetails[0].FileSize=(*(*FileInfo)).FileSize; FileDetails[0].ParentID = (*(*FileInfo)).Parent; wcscpy(FileDetails[0].FileName, (*(*FileInfo)).NameExtStr); wcscpy(FileDetails[0].PathName,(*(*FileInfo)).PartitionStr); return TRUE; }
плз помогите
Что я уже пробовал:
мой на C# структура
[StructLayout(LayoutKind.Sequential)] public struct FileInfoStruct { public ulong Parent; public ulong FileSize; public ulong Delta; public FILETIME Modified; public FILETIME Created; public FILETIME Accessed; public IntPtr NameExtStr; // name of file public IntPtr PartitionStr; // partition or drive name public IntPtr CommentStr; // if not null then comment about file state public int OverwrittenIndex; public ulong[] LostCluster; // overwritten clusters # public ulong TotalClusters; //u64 LostClusters; public int Exists; public int State; public int Hidden; public int FoundByDeepScan; public int Attr; }
мой код c#
GetFileInfoNew(IntPtr Undelete, uint Idx, ref FileInfoStruct FileInfo, ref FileDetailsStruct FileDetails)
Richard MacCutchan
В чем же вопрос?
Member 14087451
сэр iam сталкивается с проблемой pinvoke c code to c#, моя структура остается нулевой, она работает правильно в c, но я не получаю значения в c#
Patrice T
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.