回答編集履歴

1

追記

2021/01/14 09:17

投稿

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