Visual C ++ Ошибка чтения файлового потока и преобразования в массив символов - PullRequest
0 голосов
/ 29 декабря 2011

Во-первых, вот код, который я пытаюсь заставить работать-

private: System::Void openToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
         OpenFileDialog^ dlg = gcnew OpenFileDialog();
         dlg->Filter = "Text Files|*.txt";
         String^ stream;
         if(dlg->ShowDialog()==Windows::Forms::DialogResult::OK)
         {
            txtOutput->Text = System::IO::File::ReadAllText(dlg->FileName);


            char* num = (char*)(void*)Marshal::StringToHGlobalAnsi(stream); //Convert string to array of char

            for (int i=0;i<stream->Length;++i) //ERRONEOUS LINE!!
            {
                num[i] = num[i] ^ key;   //DECRYPT
            }
            String^ orig_stream = gcnew String(num);
            txtOutput->Text = orig_stream;

         }
     }

Я пытаюсь открыть файл, который уже зашифрован. Программа компилирует без ошибок, но во время выполнения выдает следующую ошибку с вариантами прерывания, продолжения или прерывания:

An unhandled exception of type 'System.NullReferenceException' occurred in Project_Targaryen.exe
Additional information: Object reference not set to an instance of an object.

Ошибка указывает на строку цикла for. Любая помощь приветствуется!

1 Ответ

0 голосов
/ 29 декабря 2011

stream не связан с объектом до его использования в цикле for.

...