Проблема автоматического выхода LibraryImport в .NET 9C#

Место общения программистов C#
Ответить
Anonymous
 Проблема автоматического выхода LibraryImport в .NET 9

Сообщение Anonymous »

У меня есть существующий проект .NET 8, который работает нормально, и я хочу обновить его до .NET 9.
Мне нужно сослаться на DLL-файл C++ в проекте, и я всегда говорил об этом так:

Код: Выделить всё

  [LibraryImport("Karel")]
private static partial uint VikeyFind(ref uint pdwCount);
Когда я отлаживаю свою программу в Visual Studio, она автоматически завершает работу без каких-либо ошибок.
Я попробовал выполнить код шаг за шагом и обнаружил это происходит, когда программа доходит до этого момента.

Код: Выделить всё

 [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. Более того, я никогда не меняю код для обновления .NET 9, а только обновляю пакет NuGet до последней версии. Однако после того, как я вернулся к .NET 8 со всей последней версией пакета NuGet, программа по-прежнему работала нормально.

Подробнее здесь: https://stackoverflow.com/questions/791 ... g-in-net-9
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»