
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.
Add to a SourceWeft workspace
- Open the skill in your dashboard and add it to a workspace.
- Enable it for the chats that should use it.
This skill is instructions only: it ships no scripts to execute.
Add to SourceWeftYou will be asked to sign in first, then taken straight to this skill.
Ask your agent to install it
Paste this prompt into Claude Code, Codex, Cursor or another agent that can run commands — or into SourceWeft chat. The agent reads this skill's install guide, shows you its source, license and scripts, and installs it with the SourceWeft CLI once you agree.
Read https://sourceweft.com/skills/gh-dotnet-skills-dotnet-pinvoke/install.md and install the skill it describes. Before installing, show me its source, license and whether it ships scripts, and wait for my OK. Ask me before changing anything else on my machine.Install it yourself from a terminal
For Claude Code, Codex, Cursor and other local agents. The SourceWeft CLI fetches the skill from its source repository at the commit scanned here, and verifies every file against the hashes recorded when the skill was scanned. If anything differs, nothing is written.
npx @sourceweft/cli skills install gh-dotnet-skills-dotnet-pinvokeAdd --agent claude-code, codex, cursor or universal to choose which agent gets it (Claude Code by default).
Upstream installer — not verified by SourceWeft
The open-source skills installer fetches the same pinned commit, but does not check the files against the hashes SourceWeft recorded.
npx skills add https://github.com/dotnet/skills/tree/0608d8924cd3173411e36650a7a01b4063e1f55a/plugins/dotnet-advanced/skills/dotnet-pinvokeSource 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.