回答編集履歴
2
マーシャリングにリンク追加
test
CHANGED
@@ -34,4 +34,4 @@
|
|
34
34
|
|
35
35
|
---
|
36
36
|
|
37
|
-
もし、既にネイティブ・プラグイン自体をC言語I/Fで開発されていて、Unityから呼び出した時に正常に動作しないのであれば、マーシャリングに失敗している可能性が高いです。特に文字列型についてはUnityは恐らくUTF16ではないでしょうか? C++側もそれに合わせたコードになっていないと正常には動作しないと思います。
|
37
|
+
もし、既にネイティブ・プラグイン自体をC言語I/Fで開発されていて、Unityから呼び出した時に正常に動作しないのであれば、[マーシャリング](http://dalmore.blog7.fc2.com/blog-entry-62.html)に失敗している可能性が高いです。特に文字列型についてはUnityは恐らくUTF16ではないでしょうか? C++側もそれに合わせたコードになっていないと正常には動作しないと思います。
|
1
追記
test
CHANGED
@@ -29,3 +29,9 @@
|
|
29
29
|
[Unityのマニュアル](https://docs.unity3d.com/ja/current/Manual/NativePlugins.html)によると「プラグインの関数は C 言語に基づいたコール·インタフェース(C-based call interface)を使用するので、C++や Objective-C を使用した場合はネーム・マングル(name mangling)の問題を避けなければなりません。」ということですので、直接STLを呼び出すことは事実上出来ません。
|
30
30
|
|
31
31
|
使っているSTLの関数全てについて、[マングリング](https://ja.wikipedia.org/wiki/%E5%90%8D%E5%89%8D%E4%BF%AE%E9%A3%BE)を手で解決する必要があります。これは現実的ではないと思います。
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
---
|
36
|
+
|
37
|
+
もし、既にネイティブ・プラグイン自体をC言語I/Fで開発されていて、Unityから呼び出した時に正常に動作しないのであれば、マーシャリングに失敗している可能性が高いです。特に文字列型についてはUnityは恐らくUTF16ではないでしょうか? C++側もそれに合わせたコードになっていないと正常には動作しないと思います。
|