DllImportAttribute

DllImportAttributeは、C++などで書かれた外部ライブラリ(DLL)のメソッドを宣言する時に付ける属性。

DllImportAttribute Class (System.Runtime.InteropServices) | Microsoft Docs

MessageBoxなど、ANSI関数とUnicode関数が別れている場合は、呼び出す関数によっては文字コードを指定しておかないと文字化けの可能性がある。

空のプロジェクト
空のプロジェクト

空のプロジェクトで、

MainClass.cs
MainClass.cs

MainClass.csを追加。

MessageBoxWを呼び出す。

MessageBox function (winuser.h) | Microsoft Docs

Unicode関数なので、CharSetにCharSet.Unicodeを指定。
hWndはIntPtrに、LPCWSTRはstringに、UINTはuintに。

MessageBoxWが表示される
MessageBoxWが表示される

MessageBoxWが表示される。

終了
終了

そして終了。

Sample/dotnet/DllImportAttribute/DllImportAttribute/src/DllImportAttribute_ at master · bg1bgst333/Sample · GitHub