Следующий код будет компилироваться в Visual Studio, но если я попытаюсь скомпилировать его на dotnetfiddle.net (который, по -видимому, использует Dotnet, поскольку это среда выполнения Linux), я получаю следующую ошибку: < /p>
ошибка компиляции, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u Часть реализации, поскольку в ней есть модификаторы доступности
Единственный способ получить его для компиляции на DotnetFiddle - это удалить частичный и Mark RepenFile как Extern . Однако это не компилируется в Visual Studio, создавая следующую ошибку: < /p>
Метод 'repenfile' должен быть «статичным», «частичным» и не генерическим, когда помечен «LibraryImportAttribute». P/invoke источник генерации будет игнорировать метод «repenfile '
В обеих средах я использую .net 9.
internal static partial class Win32
{
[LibraryImport("kernel32.dll", SetLastError = true)]
public static partial SafeFileHandle ReOpenFile(
IntPtr hOriginalFile,
uint dwDesiredAccess,
uint dwShareMode,
uint dwFlagsAndAttributes
);
public const uint GENERIC_READ = 0x80000000;
public const uint GENERIC_WRITE = 0x40000000;
public const uint FILE_SHARE_READ = 0x00000001;
public const uint FILE_SHARE_WRITE = 0x00000002;
public const uint FILE_FLAG_OVERLAPPED = 0x40000000;
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... ile-in-net