unresolved token, verweis auf nicht aufgelöstes symbol



  • Fehler 4 error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol ""extern "C" int __stdcall GetOpenFileNameA(struct tagOFNA *)" (?GetOpenFileNameA@@$$J14YGHPAUtagOFNA@@@Z)" in Funktion ""private: void __clrcall WindowsFormsApplication1::Form1::button1_Click(class System::Object ^,class System::EventArgs ^)" (?button1_Click@Form1@WindowsFormsApplication1@@$$FAAAMXPAAMXPAAVObject@System@@P$AAVEventArgs@4@@Z)". C:\Users\Kaze\Documents\Visual Studio 2012\Projects\WindowsFormsApplication1\WindowsFormsApplication1\WindowsFormsApplication1.obj

    code ist:

    #pragma once
    #include <Windows.h>
    #include <fstream>
    #include <string.h>
    #include <iostream>
    
    .....ziemlich viel Zeugs ohne Fehler....
    
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    			 char test[20];
    			 int i= 0;
    			 std::fstream output;
    	    	 char path [MAX_PATH + 1 ] = {0};
    
    			 OPENFILENAMEA datei = {sizeof (OPENFILENAMEA), 0, 0, "*.z64\0\0", 0, 0, 0, path, MAX_PATH, 0, 0, ".\\", "Datei Auswählen", 0};
    
    		     if (false == GetOpenFileNameA (&datei)){
    				MessageBoxA (0, "Datei konnte nicht geöffnet werden.", "Fehler",0);}
    
    			 output.open(path , std::ios::binary | std::ios::out | std::ios::in);
    			 for (i = 0; i< textBox1->TextLength && i <20 ; i++) {
    			 test [i] = textBox1->Text[i];
    			 output.seekp(32+i);
    			 output.put (test [i]);;}
    			 if (textBox1->TextLength <20){
    				 for ( 0; i<20; i++){
    					 output.seekp(32+i);
    					 output.put (32);};}
    			 output.close();
    
    	};
    

    Es gibt außerdem Fehler bei MessageBoxA... also bei allem, was in windows.h sein sollte...



  • Hast du die entsprechenden Libraries gelinked?

    Abgesehen davon: http://www.c-plusplus.net/forum/263084



  • Wie nwp3 drüben schon geschrieben hat:

    In der Doku steht du musst die Comdlg32.lib dazulinken.



  • phanzy schrieb:

    Wie nwp3 drüben schon geschrieben hat:

    In der Doku steht du musst die Comdlg32.lib dazulinken.

    okay, jetzt funktionierts. ich musste außerdem noch eine 2. lib dazulinken;

    #pragma comment(lib, "Comdlg32.lib")
    #pragma comment(lib, "User32.lib")
    


  • Die Frage ist halt, wofür du das alles brauchst, wenn du doch eh kein C++ machst; wieso dann nicht einfach gleich auch dafür die entsprechenden .NET Klassen nehmen!?



  • Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum WinAPI 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.


Anmelden zum Antworten