程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 在CLR程序中使用STL

在CLR程序中使用STL

編輯:.NET實例教程

開發的一個類庫,使用標准C++和STL開發,近來想要將其在CLR Form程序中使用。在此之前對於VC2005中C++/CLI對於兩種不同系統的集成的問題也有所耳聞,據說還做得不錯,於是就躍躍欲試。先寫了下面一段簡單的測試代碼,卻出現了意想不到的問題:

#include<cli/vector> //MSDN上看到的方式
#include <clIExt/vector>   // 另外看到的一種方式
#include <iOStream>
#include <string>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
using namespace System;

int main(array<System::String ^> ^args)
{
    Console::WriteLine(L"Hello World");
    vector<string> myList;
    vector<string>::iterator It; 
    myList.push_back("STL");
    myList.push_back("CLI");
    for(It = myList.begin(); It != myList.end(); It++){
         cout<<(*It)<<endl;  
     }        
     // 和期待的一樣,上面代碼自然運行良好,於是寫了下面的另一組代碼 ;
     vector<String^> myList2;
     vector<String^>::iterator It2;
     String^ h = gcnew System::String("STL");
     myList2.push_back(h);
     h = gcnew System::String("CLI");
     myList2.push_back(h);
     for(It2 = myList2.begin(); It2 != myList2.end(); It2++){  
          Console::WriteLine(*It2);  
     }    vector<String^> myList2;
     // 這裡就出現錯誤,莫名其妙的一些出錯信息,其間也試過把追蹤句柄改為String類型,不過同時出錯,於是        //無 奈,開始抓狂,在網上狂搜資料,得到的有用信息卻少之又少,幾乎沒有,還有人寫的例子程序也和我的一樣,但是我就奇怪為什麼我的程序編譯不過。
    return 0;
}
 後來查了一下,說是要用STL.Net,於是又恍然大悟,似乎找到了救命草,於是乎趕緊如法炮制,不料還是通不過,而這次的錯誤卻變了,說是無法找到頭文件,我就郁悶了,這MSDN上ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.VSADD.v10.en/dnvs05/Html/stl-netprimer.htm#stl-netprimer_topic4 也能搞錯,再加上兩種不同的方式,更是讓我無計可施。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved