У меня есть структура, определенная как
struct DiskInfo{
int size,
char **atributes
};
Мне нужно отправить ее в C ++ DLL, которая будет запускать что-то вроде
for(i=0;i<Files.count;i++)
{
newList[i] = (wchar_t *)malloc(sizeof(List->Strings[i]));
wcscpy(newList[i], List->Strings[i]);
.... more code
}
На данный момент у меня есть структура poplutaed вседанные, и мне нужно отправить его обратно на C #.Я попытался:
internal struct DiskInfo
{
internal int size;
[MarshalAs(UnmanagedType.ByValArray)]
internal string[] Files;
}
и подпись
[DllImport("Disk.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = GetDiskInfo")]
internal static extern uint GetDiskInfo(
[In, Out]
DiskInfo Param);
И вызов функции
data= new DiskInfo();
Native.GetDiskInfo(data);
Однако данные всегда возвращаются как нулевые.Что я делаю не так?