2013-08-23 3 views
0

Я пытаюсь прочитать строку, которая является «номером» из файла, и преобразовать ее обратно в целое число. Ниже мой код, который является C++/CLIОшибки компиляции во время работы с примерами C++/CLI

int InformationReader::getThreshold() 
{ 
    StreamReader ^reader = gcnew StreamReader("threshold.dat"); 
    System::String ^thresholdStr = reader->ReadLine(); 

    Int32 thresholdNum; 

    boolean a = Int32::TryParse(thresholdStr,thresholdNum); 

    return 0; 

} 

Но, как только этот код получить казнены, я получаю следующее сообщение об ошибке

1>InformationReader.cpp(29): error C2065: 'Int32' : undeclared identifier 
1>InformationReader.cpp(29): error C2146: syntax error : missing ';' before identifier 'thresholdNum' 
1>InformationReader.cpp(29): error C2065: 'thresholdNum' : undeclared identifier 
1>InformationReader.cpp(31): error C2065: 'boolean' : undeclared identifier 
1>InformationReader.cpp(31): error C2146: syntax error : missing ';' before identifier 'a' 
1>InformationReader.cpp(31): error C2065: 'a' : undeclared identifier 
1>InformationReader.cpp(31): error C2653: 'Int32' : is not a class or namespace name 
1>InformationReader.cpp(31): error C2065: 'thresholdNum' : undeclared identifier 
1>InformationReader.cpp(31): error C3861: 'TryParse': identifier not found 

OK теперь это чуждо мне, потому что я пошел через количество вопросов и ответов, и во всех них они следовали аналогичному подходу, который я использовал, но я получаю сообщение об ошибке. Почему это? Пожалуйста помоги.

+0

Я не C эксперт ++, поэтому хочу знать, как вы определяете из параметров в C++, как и в C, например # 'Int32.TryParse ("2", out i); '. Просто любопытная причина, почему вся цель TryParse не выбрасывает исключение. – Nilesh

+0

Вы попали в ловушку компиляции фрагментов без их упряжи. – user7116

+0

Отсутствует директива 'using namespace System;'. Булевы должны быть капитализированы или быть bool. –

ответ

2

Закрепить первую ошибку компиляции, которую вы видите: Вам нужен System:: перед Int32 thresholdNum;

+2

В качестве альтернативы вы можете просто использовать 'int' вместо' Int32', в обоих местах (да, 'int :: TryParse' тоже должен работать). – Medinoc

+0

Большое спасибо за помощь. –

+0

@Medinoc: Да, я сделал это сейчас. Большое спасибо за помощь –

Смежные вопросы