2013-12-09 100 views
1

我需要將字符串關聯到FILE指針,將字符串關聯到無符號長整數。使用STL我只會這樣做:STL的MFC等價std :: map

map<string, FILE *> 
map<string, unsigned long int> 

但我不明白如何做與MFC CMap等效。

我想:

CMap<string, string &, FILE *, FILE * &> 
CMap<string, string *, FILE *, FILE **> 

,但我發現在這兩種情況下的錯誤: 錯誤C2440類型轉換不能從STD字符串轉換成DWORD_PTR

而且我不知道理解的邏輯有4個模板參數。

任何人都可以解釋我嗎?謝謝。

+1

爲什麼不繼續使用'std :: map'?它與MFC不兼容。 –

+0

因爲STL地圖在EVC4上不被正確支持,不是因爲我喜歡讓我的生活變得有意義。 – Virus721

+0

哦,我明白了 - 你沒有在你的問題中提到eVC4,但我想你現在已經得到了你的答案 - 希望它能順利進行...... –

回答

2
CMap<string, FILE*> 

CMap<string, unsigned long> 

應該正常工作。使用4個參數的版本僅適用於特定的場景。

+0

謝謝我認爲它們是必需的。 – Virus721

+0

我剛剛注意到編譯器說模板的參數太少,所以它們是強制性的 – Virus721

+1

I沒有編譯器,可能會發誓我從來沒有使用過長版本無論如何,從字符串到filepointer的映射可能如下所示:CMap 。注意, t需要一個特殊的引用類型,如果你的類型容易被複制而沒有性能損失。我有混合MCF和STL的奇怪問題,所以我建議在其他MFC類中使用MCF字符串類。 – nvoigt