回答編集履歴

4

追記

2022/01/05 02:21

投稿

退会済みユーザー
test CHANGED
@@ -1 +1,9 @@
1
1
  C#では文字列を扱う際にC、C++のような末尾ヌル文字は考慮しないので、UTF32バイトコードにする前に事前に付与しておくか、引数で一緒にC#側の文字列長を渡すかしてください。
2
+
3
+
4
+
5
+ 試した事はないですが、独自のカスタムマーシャラーを定義するなんて事も出来るみたいです。
6
+
7
+ [パラメーターのマーシャリングのカスタマイズ](https://docs.microsoft.com/ja-jp/dotnet/standard/native-interop/customize-parameter-marshaling)
8
+
9
+ [C# 9.0 メモリ割り当て文字列のカスタムマーシャラー](https://potisan-programming-memo.hatenablog.jp/entry/2020/11/26/214836)

3

修正

2022/01/05 02:21

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- C#では文字列を扱う際にC、C++のようなヌル文字は考慮しないので、UTF32バイトコードにする前に事前に付与しておくか、引数で一緒にC#側の文字列長を渡すかしてください。
1
+ C#では文字列を扱う際にC、C++のような末尾ヌル文字は考慮しないので、UTF32バイトコードにする前に事前に付与しておくか、引数で一緒にC#側の文字列長を渡すかしてください。

2

修正

2022/01/05 02:13

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- C#では文字列を扱う際にC、C++のようなヌル文字は考慮しないので、UTF32バイトコードにする前に事前に付与しておくか、引数で一緒にC#側でカウントした文字列長を渡すかしてください。
1
+ C#では文字列を扱う際にC、C++のようなヌル文字は考慮しないので、UTF32バイトコードにする前に事前に付与しておくか、引数で一緒にC#側文字列長を渡すかしてください。

1

修正

2022/01/05 02:11

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- C#では文字列を扱う際にC、C++のようなヌル文字は考慮しないので、バイトコードにする前に事前に付与しておくか、引数でC#側でカウントした文字列長を渡すかしてください。
1
+ C#では文字列を扱う際にC、C++のようなヌル文字は考慮しないので、UTF32バイトコードにする前に事前に付与しておくか、引数で一緒にC#側でカウントした文字列長を渡すかしてください。