
Dotnet Pinvoke
by dotnet0608d8924cd3MIT5.5K starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated today
Correctly call native (C/C++) libraries from .NET using P/Invoke and LibraryImport. Covers function signatures, string marshalling, memory lifetime, SafeHandle, and cross-platform patterns. USE FOR: writing new P/Invoke or LibraryImport declarations, reviewing or debugging existing native interop code, wrapping a C or C++ library for use in .NET, diagnosing crashes, memory leaks, or corruption at the managed/native boundary. DO NOT USE FOR: COM interop, C++/CLI mixed-mode assemblies, or pure managed code with no native dependencies.
- 0608d8924cd3Currentcommit 0608d89Published Oct 8, 2026
Source and attribution
Source:dotnet/skillsinplugins/dotnet-advanced/skills/dotnet-pinvokeat commit0608d89
License: MIT
Content belongs to its original authors. SourceWeft indexes it from a public repository.
More from dotnet/skills

Setup Local Sdk
dotnet
Guides installing a project-local .NET SDK in .dotnet/ and wiring it through global.json paths.

System Text Json Net11
dotnet
Guides use of three System.Text.Json APIs added in .NET 11: PascalCase naming policy and generic type-info accessors.

Thread Abort Migration
dotnet
Guides migrating .NET Framework Thread.Abort usage to cooperative cancellation in modern .NET.

Migrate Dotnet9 To Dotnet10
dotnet
Guides migration of a .NET 9 project or solution to .NET 10, resolving breaking changes.

Target Authoring
dotnet
Canonical patterns for authoring custom MSBuild targets, including dependency chains, extension, and incrementality.

Resolve Project References
dotnet
Explains why ResolveProjectReferences time in MSBuild summaries is misleading and redirects optimization to task self-time.