我試圖用第三方C++源代碼(機器人SLAM的TORO框架,你可以通過svn獲得它:svn co https://www.openslam.org/data/svn/toro),試圖封裝它稍後將在我的C#代碼中使用的DLL。 但是,我只是通過將源文件包含到我的項目中來獲得各種錯誤。 例如,對於下面的代碼C++怪異的編譯錯誤,深深的錯誤
void TreePoseGraph<Ops>::revertEdge(TreePoseGraph<Ops>::Edge * e){
revertEdgeInfo(e);
Vertex* ap=e->v2;
e->v2=e->v1;
e->v1=ap;
}
我收到以下錯誤:
錯誤C2182: 'revertEdge':非法使用類型 '無效'
錯誤C2470的:「AISNavigation :: TreePoseGraph :: revertEdge':看起來像一個函數d 的定義,但是沒有參數列表;跳繩明顯的身體
錯誤C2072:「AISNavigation :: TreePoseGraph :: revertEdge」:初始化函數
當然,如果它包括(revertEdge)在正確的頭我做的第一件事是檢查的,並在stdAfx.h中,當然它到處都是。此外,智能感知可以識別所有東西,可以將我指向所有東西的源頭,所以似乎沒有任何東西從項目中遺漏。但是,我收到了類似的大量錯誤。
我敢肯定,我在開始的時候在這裏做了一些非常錯誤的事情,這導致了所有這些無意義的錯誤消息的轉儲(可能有1-2個合理的,但其餘的只是avalance的結果)。你可以給出任何建議,可能會導致如此巨大的一組錯誤信息?
這實際上解決了這個問題!現在我對這個功能沒有任何問題。我會嘗試將類型名稱放在需要使用自定義類型名稱的地方。 – 2013-03-12 17:50:24
不要把它們放在任何地方,因爲這個類型是一個*依賴*類型,即依賴於一些模板參數的類型(在你的例子中:'Ops')。 – 2013-03-12 17:56:50
好的,非常感謝,這個問題已經解決了,我設法解決了這個文件的錯誤,但現在還有其他問題出現。恐怕我很快就會有更多的問題。問題在於,我對高級C++根本沒有經驗。 :( – 2013-03-12 18:03:42