Nicht aufgelöstes Toke "C"



  • 1>Übung 1.obj : error LNK2028: Nicht aufgelöstes Token (0A000029) ""extern "C" int __stdcall ShowWindow(struct HWND__ *,int)" (?ShowWindow@@$$J18YGHPAUHWND__@@H@Z)", auf das in Funktion ""public: void __clrcall Übung1::Form1::Encode(void)" (?Encode@Form1@Übung1@@$$FQAAMXXZ)" verwiesen wird. 1>Übung 1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int \_\_stdcall ShowWindow(struct HWND\_\_ *,int)" (?ShowWindow@@J18YGHPAUHWND__@@H@Z)" in Funktion ""public: void __clrcall Übung1::Form1::Encode(void)" (?Encode@Form1@Übung1@@FQFQAAMXXZ)".
    1>D:\VC++ Programme\Übung 1\Debug\Übung 1.exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.

    Ich versteh nicht ganz was das heißen soll, bzw was ich falsch gemacht habe.
    Hier ein Ausschnitt wo ich den Fehler vermute.

    void Form1::Encode()
    {
    	Form1::SAFEREF();
    	ShowWindow(nullptr,SW_MINIMIZE);
    	Fortschritt->Maximum = richTextBox1->TextLength;
    	Fortschritt->Minimum = 0;
    	std::string OUT;
    	bool UseStringList = true;
    
    	if (Ascii->Text == "Voller Zeichensatz (alle Zeichen unterstüzt)")
    	{
    		UseStringList = false;
    	}
    	String^ All = richTextBox1->Text;
    	int Count_Zeichen = 0;
    	int RechenOperator = 0;
    	std::string CurKey;
    	while (Count_Zeichen < richTextBox1->TextLength)
    	{
    		Count_Zeichen++;
    		std::string CZSTR;
    		std::stringstream COUNTER;
    		COUNTER << Count_Zeichen;
    		COUNTER >> CZSTR;
    		COUNTER.clear();
    		COUNTER.str("");
    		label10->Text = gcnew String(CZSTR.c_str());
    		std::stringstream UMW;
    		UMW << Count_Zeichen;
    		ZwischenTyp = UMW.str();
    		RechenOperator++;
    		Progress[2]++;
    		if (Count_Zeichen <= Parameter[1] && Parameter[1] != 4 && Count_Zeichen != 1 && (radioButton1->Checked == true))
    		{
    		//	MessageBox::Show(gcnew String(GlobalName.c_str()));
    			ChangeKey(Parameter[1],Parameter[2],true,GlobalName);
    		}
    		if (Parameter[1] != 4)
    		{
    			if (RechenOperator == Parameter[1])
    			{
    				CurKey = GlobalName;
    				RechenOperator = 0;
    			}
    			else
    			{
    				if (RechenOperator == 1)
    				{
    					CurKey = GlobalName;
    				}
    				else if (RechenOperator != 1)
    				{
    					CurKey = GlobalName;
    					CurKey = GlobalName.substr(0,CurKey.size()-7);
    					CurKey += " ";
    					std::stringstream convert;
    					std::string KeyNumStr;
    					convert << (RechenOperator-1);
    					convert >> KeyNumStr;
    					CurKey += KeyNumStr;
    					CurKey += ".CodeX3";
    				}
    			}
    		}
    		else if (radioButton1->Checked == true)
    		{
    			ChangeKey(Parameter[1],Parameter[2],true,GlobalName);
    			CurKey = GlobalName;
    			CurKey = GlobalName.substr(0,CurKey.size()-7);
    			CurKey += " ";
    			CurKey += GlobalKeyNum;
    			CurKey += ".CodeX3";
    		}
    		std::string Zeichen;
    		Zeichen = StringConvA(All);
    		Zeichen = Zeichen.substr(Count_Zeichen-1,1);
    	//	MessageBox::Show(gcnew String(Zeichen.c_str()));
    		int Num;
    		if (UseStringList == true)
    		{
    			Num = ZeichenToInt(Zeichen,Parameter[2]);
    		}
    		else
    		{
    		//	MessageBox::Show("FOUND MARKER HERE");
    			unsigned char ASCIITABEL;
    			std::stringstream Uberbrucken;
    			Uberbrucken << Zeichen;
    			Uberbrucken >> ASCIITABEL;
    			Uberbrucken.clear();
    			Uberbrucken.str("");
    			Num = static_cast<int>(ASCIITABEL);
    		//	MessageBox::Show("FOUND MARKER HERE");
    		}
    		std::string NumStr;
    		std::stringstream STREAM;
    		STREAM << Num;
    		NumStr = STREAM.str();
    		STREAM.clear();
    		STREAM.str("");
    		int line = 0;
    	//	MessageBox::Show(gcnew String(NumStr.c_str()));
    		if (Num != 0 && radioButton1->Checked == true)
    		{
    			std::ifstream CurrentKey;
    			CurrentKey.open(CurKey.c_str());
    			if (!CurrentKey)
    			{
    				richTextBox1->Text = "FILE NOT FOUND";
    			}
    			std::string Line;
    			line = 0;
    			while (std::getline(CurrentKey,Line))
    			{
    				line++;
    				if (Line == NumStr)
    				{
    					break;
    				}
    			}
    			CurrentKey.close();
    		}
    		else
    		{
    			std::random_shuffle( VirtualKey.begin(), VirtualKey.end() );
    			int InVector = 0;
    			std::string InVectorStr;
    			while (InVector != Num)
    			{
    				line++;
    				InVector = VirtualKey[line-1];
    				std::stringstream Wandler;
    				Wandler << InVector;
    				InVectorStr = Wandler.str();
    				Wandler.clear();
    				label11->Text = gcnew String(InVectorStr.c_str());
    			}
    			//MessageBox::Show(gcnew String(InVectorStr.c_str()));
    		}
    		int NewNum = line;
    		Numb = NewNum;
    		std::string bla;
    		std::stringstream conv;
    		conv << line;
    		conv >> bla;
    		conv.clear();
    	//	MessageBox::Show(gcnew String(bla.c_str()));
    		std::string Result;
    		if (UseStringList == true)
    		{
    			Result = IntToZeichen(NewNum,true,Parameter[2]);
    			if (Result == "Zeichenerkennung Fehlerhaft oder Text leer, CRITICAL ERROR\n")
    			{
    				MessageBox::Show(gcnew String(bla.c_str())); 
    			}
    		}
    		else
    		{
    			char c;
    			c = char (NewNum);
    			Result = c;
    		//	MessageBox::Show(gcnew String(Result.c_str()));
    		}
    		std::string Text;
    		Text = StringConvA(richTextBox3->Text);
    		Text += Result;
    		richTextBox3->Text = gcnew String(Text.c_str());
    		richTextBox3->Refresh();
    		all = Text;
    		Update();
    	}
    }
    

    Genauer geht es leider nicht, da ich den Fehler nicht verstehe.



  • ups
    Ja hat sich erledigt sorry
    Aber wie benutze ich
    ShowWindow(nullptr,SW_MINIMIZE);
    Richtig ?

    EDIT: der nullpointer ist nicht erlaubt das ist klar, aber wie sag ich ihm er soll meine Anwendung minimieren ?



  • Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Setze einfach das WindowState Property der Form.
    http://msdn.microsoft.com/en-us/library/system.windows.forms.form.windowstate.aspx

    BTW: Du mischst .NET mit WinAAPI, das sollst Du nur tun, wenns nicht anders geht!

    Simon



  • btw: Ich mische alles mit allem, ist ne schlechte angewohnheit



  • Tim06TR schrieb:

    btw: Ich mische alles mit allem, ist ne schlechte angewohnheit

    Btw, lass es gefälligst sein! 😉


Anmelden zum Antworten