问题具体是这样的:我用asp.net做了一个平台,访问数据库,放数据放到ArrayList里面。
另外,我用C++做了个算法,把他制作成dll文件,其中输入接口为一个vector。
C#中通过函数调用dll文件,请问怎么把ArrayList数据传递给Vector呢?在线等,拜托各位兄弟啦

解决方案 »

  1.   

    不如写个C++/CLI的Wrapper假设你的C++:
    extern "C" __declspec(dllexport) 
    void Print(vector<int> &ve){
    vector<int>::iterator iter = ve.begin();
    while(iter != ve.end()){
    printf("%d\t",*iter++);
    }
    }c++/cli wrapper// include necessary c++ headers
    public ref class NativeCodeHelper{
    public:
    static void Print(System::Collections::ArrayList^ arr){
    vector<int> ve;
    for(int i=0; i < arr->Count; i++){
    int temp = (int)arr[i];
    ve.push_back(temp);
    }
    ::Print(ve);
    }
    };
    那么在你的C#项目里面引用wrapper项目,然后直接:
    NativeCodeHelper.Print(yourArraylist);
      

  2.   

    Thanks for your sharing!