teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2021/01/14 09:17

投稿

退会済みユーザー
answer CHANGED
@@ -1,2 +1,11 @@
1
1
  MarshalAsにArraySubTypeを指定してみてください。
2
- [配列に対する既定のマーシャリング](https://docs.microsoft.com/ja-jp/dotnet/framework/interop/default-marshaling-for-arrays)
2
+ [配列に対する既定のマーシャリング](https://docs.microsoft.com/ja-jp/dotnet/framework/interop/default-marshaling-for-arrays)
3
+
4
+ ---
5
+
6
+ (追記)
7
+ 渡された文字列をMessageBoxで表示するだけのDLL(ANSI文字コード)を作成し、下記呼び出しで問題なく表示する事を確認しています。
8
+ ```C#
9
+ [DllImport("test.dll", CharSet=CharSet.Ansi)]
10
+ private static extern uint DLLGetFiles(int nFNum, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPStr)]string[] files);
11
+ ```