2013-07-29 65 views
0

如果我不允許使用msclr/marshal_cppstd.h,有什麼辦法可以將System::String轉換爲std::string系統字符串std沒有元帥字符串

的原因是,我需要在同一個項目中使用cryptlib.h,我得到一個錯誤,當我包括:

cryptlib.h和wincrypt.h不能同時在同一時間使用由於類型名稱衝突

+0

哪些名稱衝突? – doctorlove

+0

CL:警告:cryptlib.h和wincrypt.h都包含在同一個源文件中。 這些包含衝突的類型名稱,可以防止兩者同時使用。 要允許編譯進行,您需要避免在代碼中包含wincrypt.h。 c:\ documents and settings \ ... \ cryptlib.h(58):致命錯誤C1189:#error:「由於衝突的類型名稱,cryptlib.h和wincrypt.h不能同時使用」 ...這是整個錯誤 – Szaby

回答

0

錯誤告訴你問題是cryplib.h和wincrypt.h不能#included到同一個源文件中。我認爲該消息的文本來自#error之後的任何內容,該內容由用戶決定 - 請參閱here
因此,如果你不能將它們包含到同一個源文件中,你可以對你的代碼進行不同的分區,並將它們包含在不同的源文件中。編組字符串不是錯誤消息所抱怨的。

+0

謝謝你,我將cryptlib.h包含在源文件的頭文件和msclr/marshal_cppstd.h中,並且它正在工作。 – Szaby