none
O compilador está tentanto converter uma String^ para Bool! RRS feed

  • Pergunta

  • Me desculpem pela bagunça do código, ainda não tive tempo de organizar.
    Os erros ao compilar:

    1>c:\users\asus\documents\visual studio 2010\projects\login3\login3\Form1.h(246): error C2440: '=' : cannot convert from 'System::String ^' to 'bool'
    1>     No user-defined-conversion operator available, or
    1>     There is no context in which this conversion is possible
    1>c:\users\asus\documents\visual studio 2010\projects\login3\login3\Form1.h(265): error C2065: 'picatureBox1' : undeclared identifier
    1>c:\users\asus\documents\visual studio 2010\projects\login3\login3\Form1.h(265): error C2227: left of '->Enabled' must point to class/struct/union/generic type
    

    O código em si:

    #pragma endregion
    		
    		private: System::Void password_TextChanged(System::Object^ sender, System::EventArgs^ e) {
    				 password->UseSystemPasswordChar = true;
    			 }
    				 private: System::Void textBox2_TextChanged(System::Object^ sender, System::EventArgs^ e) {
    				 password->UseSystemPasswordChar = true;
    			 }
    	  
    
    	private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
    				   String^ newuser;
    		       String^ newpassword;
    			    newuser = textBox1->Text;
    			    newpassword = textBox2->Text;
    				 if (user->Text == "Admin" && password->Text == "1" || user->Text = newuser && password->Text = newpassword){
    					 ProgressBar1->Value = 100;
    					 MessageBox::Show("You have sucessfully logged in");
    					 this->Hide();
    					 Form2^ welcomeform = gcnew Form2();
    				 } else {
    					 MessageBox::Show("Incorrect Login");
    			 ;}
    				 }
    private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
    		 }
    	
    			 private: System::Void linkLabel1_LinkClicked(System::Object^ sender, System::Windows::Forms::LinkLabelLinkClickedEventArgs^ e) {
    						 linkLabel1->Enabled = false;
    						 label3->Enabled = true;
    						 textBox1->Enabled = true;
    						 textBox2->Enabled = true;
    						 label4->Enabled = true;
    						 button2->Enabled = true;
    						 picatureBox1->Enabled = false;
    
    					 }
    private: System::Void pictureBox1_Click(System::Object^ sender, System::EventArgs^ e) {
    		 }
    };
    			 };
    
    Obrigado pela ajuda :)

    quinta-feira, 13 de janeiro de 2011 18:03

Respostas

  • Achei!!!

     

    faltavam 2 sinais de = na comparação

    você fez isso ->  user->Text = newuser 

    password->Text = newpassword

    Quando o certo seria ->     user->Text == newuser 

    password->Text == newpassword



    Leonardo Bos
    • Marcado como Resposta Gruber88 quinta-feira, 13 de janeiro de 2011 22:36
    quinta-feira, 13 de janeiro de 2011 21:30

Todas as Respostas

  • 1>c:\users\asus\documents\visual studio 2010\projects\login3\login3\Form1.h(246): error C2440: '=' : cannot convert from 'System::String ^' to 'bool

    Nesse Caso você está assimilando variáveis de tipos diferentes

    É você que está convertendo String ^ para um Bool, o compilador só tentou fazer o que você pediu mas não conseguiu...

    É como dizer que:

     

    System::String ^ frase = true; // gera o mesmo erro
    

    1>c:\users\asus\documents\visual studio 2010\projects\login3\login3\Form1.h(265): error C2065: 'picatureBox1' : undeclared identifier

    Aqui você não declarou a variável, ou seja, usou algo que não existe

    pelo que vi isso pode ter sido só um descuido, já que tem um 'A' a mais:

    "picAtureBox1"

    O resto dos erros são detalhes, eles desaparecem quando você corrigir estes 2.


    Leonardo Bos
    • Editado Leonardo_Bos quinta-feira, 13 de janeiro de 2011 19:14 Mais adequado
    quinta-feira, 13 de janeiro de 2011 19:10
  • 1>c:\users\asus\documents\visual studio 2010\projects\login3\login3\Form1.h(246): error C2440: '=' : cannot convert from 'System::String ^' to 'bool

    Nesse Caso você está assimilando variáveis de tipos diferentes

    É você que está convertendo String ^ para um Bool, o compilador só tentou fazer o que você pediu mas não conseguiu...

    É como dizer que:

     

    System::String ^ frase = true; // gera o mesmo erro
    

    1>c:\users\asus\documents\visual studio 2010\projects\login3\login3\Form1.h(265): error C2065: 'picatureBox1' : undeclared identifier

    Aqui você não declarou a variável, ou seja, usou algo que não existe

    pelo que vi isso pode ter sido só um descuido, já que tem um 'A' a mais:

    "picAtureBox1"

    O resto dos erros são detalhes, eles desaparecem quando você corrigir estes 2.


    Leonardo Bos

    Seu post foi bem útil! Tanto que após corrigir o "picatureBox1" só ficou o erro da String.

    Porém, não sei de que forma está declarado ali que dá interpretação de bool, terias como me mostrar? Porque não consegui achar nada no código que eu atribuisse o "newuser" ou o "newpassword" a condição de Bool.

    quinta-feira, 13 de janeiro de 2011 19:36
  • Tenho aqui um código que gera exatamente o seu erro:

    int main()
    {
    	System::String ^string = "ola";
    	bool newuser = string;
    	return 0;
    }
    

    Aparentemente, newuser e newpassword foram declarados como bool; pois só dessa maneira seria gerado este erro...

    Enfim, me mostre exatamente onde newuser e newpassword foram declarados, clique em cima dessas variáveis e "Go To Declaration"

    e por favor poste aqui ;D

    Obrigado!


    Leonardo Bos
    quinta-feira, 13 de janeiro de 2011 20:21
  • Tenho aqui um código que gera exatamente o seu erro:

    int main()
    {
    	System::String ^string = "ola";
    	bool newuser = string;
    	return 0;
    }
    

    Aparentemente, newuser e newpassword foram declarados como bool; pois só dessa maneira seria gerado este erro...

    Enfim, me mostre exatamente onde newuser e newpassword foram declarados, clique em cima dessas variáveis e "Go To Declaration"

    e por favor poste aqui ;D

    Obrigado!


    Leonardo Bos

    Apareceu o seguinte erro:

    "The definition of the Symbol "newuser" could not be located".

    Significa que eu não declarei, mas teoricamente está aqui:

    System::String ^ newuser;
    System::String ^ newpassword;
    newuser = textBox1->Text;
    newpassword = textBox2->Text;
    

    quinta-feira, 13 de janeiro de 2011 20:30
  • Pelo que você fez está correto... 

    Preciso analisar isso mais à fundo

    mande todo o seu projeto por email para mim 

    leonardobosquett@hotmail.com

    Eu vou verificar isso e posto a resposta aqui

    Obrigado


    Leonardo Bos
    quinta-feira, 13 de janeiro de 2011 20:37
  • Pelo que você fez está correto... 

    Preciso analisar isso mais à fundo

    mande todo o seu projeto por email para mim 

    leonardobosquett@hotmail.com

    Eu vou verificar isso e posto a resposta aqui

    Obrigado


    Leonardo Bos
    Enviado. Obrigado pelo suporte :)
    quinta-feira, 13 de janeiro de 2011 21:13
  • Achei!!!

     

    faltavam 2 sinais de = na comparação

    você fez isso ->  user->Text = newuser 

    password->Text = newpassword

    Quando o certo seria ->     user->Text == newuser 

    password->Text == newpassword



    Leonardo Bos
    • Marcado como Resposta Gruber88 quinta-feira, 13 de janeiro de 2011 22:36
    quinta-feira, 13 de janeiro de 2011 21:30