概要
文字列型をどうするかは悩ましいところです。
考えられる選択肢としては、大別して以下の3通りとなることでしょう。
この3つの方法について、順に解説していきます。
[MarshalAs(UnmanagedType.LPWStr)] String を使った書き方
この記述はメモリリークはありますが「移植性が最も高い方法」です。
「DllExport.bat による方法」→「hm.NET による方法」への移行、もしくは、「COMによる方法」への移行、
どちらに将来移行するにしても、
[DllExport] と [MarshalAs(UnmanagedType.LPWStr)] を削除するだけで、移行が完了し同じ動作(しかもメモリリークなし)が期待できるのがポイントです。
呼び出し側