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