Мне нужно сослаться на DLL-файл C++ в проекте, и я всегда говорил об этом так:
Код: Выделить всё
[LibraryImport("Karel")]
private static partial uint VikeyFind(ref uint pdwCount);
Я попробовал выполнить код шаг за шагом и обнаружил это происходит, когда программа доходит до этого момента.
Код: Выделить всё
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.LibraryImportGenerator", "9.0.11.2809")]
[global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
private static partial uint VikeyFind(ref uint pdwCount)
{
uint __retVal;
// Pin - Pin data in preparation for calling the P/Invoke.
fixed (uint* __pdwCount_native = &pdwCount)
{
__retVal = __PInvoke(__pdwCount_native);
}
return __retVal;
// Local P/Invoke
[global::System.Runtime.InteropServices.DllImportAttribute("Karel", EntryPoint = "VikeyFind", ExactSpelling = true)]
static extern unsafe uint __PInvoke(uint* __pdwCount_native);
}
Код: Выделить всё
__retVal = __PInvoke(__pdwCount_native);
Я не знаю, в чем проблема. Я попробовал откатить версию до .NET 8, и программа работала нормально.
Я не уверен, является ли это ошибкой или есть ли какие-либо изменения в LibraryImport в .NET 9. Не могли бы вы рассказать мне, в чем проблема?
PS: моя версия .NET 9 SDK — 9.0.100
Подробнее здесь: https://stackoverflow.com/questions/791 ... g-in-net-9
Мобильная версия