Указатели на структуру - C#
Формулировка задачи:
Для извлечения пути к файлу из ярлыка я использую WinApi GetPath(), аргументом которой является указатель на структуру WIN32_FIND_DATA. вот код объявления данной структуры:
далее мне необходимо создать переменную - указатель на структуру:
при компиляции выдаёт следующий ошибки:
строка "WIN32_FIND_DATA* tmpInfoPtr;" - error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type
строка "struct WIN32_FIND_DATA" - (Related location)
строка "tmpInfoPtr = &tmpInfo;" - error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type
что я делаю неправильно?
[StructLayout( LayoutKind.Sequential, CharSet = CharSet.Auto )]
struct WIN32_FIND_DATA
{
public uint dwFileAttributes;
public UInt32 ftCreationTime;
public UInt32 ftLastAccessTime;
public UInt32 ftLastWriteTime;
public uint nFileSizeHigh;
public uint nFileSizeLow;
public uint dwReserved0;
public uint dwReserved1;
[MarshalAs( UnmanagedType.ByValTStr, SizeConst = 260 )]
public string cFileName;
[MarshalAs( UnmanagedType.ByValTStr, SizeConst = 14 )]
public string cAlternateFileName;
}unsafe
{
WIN32_FIND_DATA tmpInfo = new WIN32_FIND_DATA();
tmpInfo.cAlternateFileName = "";
tmpInfo.cFileName = "";
tmpInfo.dwFileAttributes = 0;
tmpInfo.dwReserved0 = 0;
tmpInfo.dwReserved1 = 0;
tmpInfo.ftCreationTime = 0;
tmpInfo.ftLastAccessTime = 0;
tmpInfo.ftLastWriteTime = 0;
tmpInfo.nFileSizeHigh = 0;
tmpInfo.nFileSizeLow = 0;
WIN32_FIND_DATA* tmpInfoPtr;
tmpInfoPtr = &tmpInfo;
}Решение задачи: «Указатели на структуру»
textual
Листинг программы
Shell32.Shell shell = new Shell32.Shell();