C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: SWIGでvector のvector


(過去ログ 77 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■45621 / inTopicNo.1)  SWIGでvector のvector
  
□投稿者/ 96 (3回)-(2010/01/15(Fri) 23:52:31)

分類:[C#] 

開発環境;Windows XP
使用言語:C#,C++
SWIG:swigwin-1.3.40

現在,私はC#でC++のクラスやメソッドを使うためにSWIGを使おうとしているのですが・・・・
どうにも上手くいきません.

今立ちはだかっている問題はC++側で・・・・・
vector< vector<int> > myVector;
といったC++のSTLのVectorクラスを入れ子?で使っている場合です.

一応,SWIG自体はC++のSTLのVectorクラスに対応しているようで,

//Sample1.cpp
//〜省略〜
vector<int> myVector;
//〜省略〜

の場合,インターフェースを

//Sample1.i

%module Sample1DLL

%{
#include "Sample1.h"
%}

%include "std_vector.i"
namespace std {
%template(VectorInt) vector<int>;
};

%include "Sample1.h"

とするとでできるようなのですが・・・・・・

「vector< vector<int> > myVector;」の場合,どうやるのでしょうか?


参考サイト(注意:英語)
http://old.nabble.com/Wrapping-a-vector-of-vector-of-ints-with-CSharp-td17573713.html
によると,
//Sample2.cpp
//〜省略〜
vector< vector<int> > myVector;
//〜省略〜

とした場合,

//Sample2.i

%module Sample2DLL

%{
#include "Sample2.h"
%}

%include "std_vector.i"
namespace std {
%template(VInt) vector<int>;
SWIG_STD_VECTOR_SPECIALIZE_MINIMUM(VectorInt, vector<int>);
%template(VVInt) vector<VInt>;
};

%include "Sample2.h"

とすればいいらしいのですが・・・・
まず,SWIG_STD_VECTOR_SPECIALIZE_MINIMUM(VectorInt, vector<int>);が何をしているのかが分からないのと
コマンドラインからの

   swig.exe -csharp -c++ Sample2.i

は通るのですが,DLL作成するためのコンパイルで

'VInt' : 定義されていない識別子です。

といったエラーを吐きます・・・・・.


どうしたら
「vector< vector<int> > myVector;」をC#に持っていけるでしょうか?
もし,何かご存知の方がいらっしゃいましたらご助力をお願いできないでしょうか?
宜しくお願いします!!










引用返信 編集キー/
■45622 / inTopicNo.2)  Re[1]: SWIGでvector のvector
□投稿者/ επιστημη (2392回)-(2010/01/15(Fri) 23:56:58)
επιστημη さんの Web サイト
...SWIGのコミュニティで訊くが解決早いんじゃないすか?
僕ならC++/CLIでラッパー書いちゃうなー

# お役にたてずすんません。

引用返信 編集キー/
■45624 / inTopicNo.3)  Re[2]: SWIGでvector のvector
□投稿者/ 96 (4回)-(2010/01/16(Sat) 00:45:08)
No45622 (επιστημη さん) に返信
> ...SWIGのコミュニティで訊くが解決早いんじゃないすか?
> 僕ならC++/CLIでラッパー書いちゃうなー
>
> # お役にたてずすんません。
>
お返事ありがとうございます.
C++/CLIですか・・・・使ったこと無いんですが,SWIGにも行き詰って来たので調べてみようと思います.
回答ありがとうございます.
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -