[DllImport("winmm.dll")] fuktioniert nicht?



  • Hallo

    ich möchte das beispiel unter
    http://www.dotnet247.com/247reference/msgs/11/59721.aspx
    mit [DllImport("winmm.dll")] ausprobieren

    wenn ich mein projekt erstelle bekomme ich diese fehler meldung

    C:\winmmConsol\Class1.cs(21): Der Typ oder Namespace 'DllImport' konnte nicht gefunden werden. Möglicherweise fehlt eine Anweisung oder ein Assemblyverweis.

    unter:
    http://www.uni-koblenz.de/~hagbard/csharp/csharp_wav.html

    ist auch so ein beispiel und ich bekomme die gleiche fehler meldung.
    was mache ich falsch

    ich habe Visual C#.Net 2003

    Grüße Can



  • Was ist denn hier nicht klar? Die Fehlermeldung sagt doch schon alles:

    du muss ein Namespace "includieren"

    --> System.Runtime.InteropServices



  • hallo

    ich bin noch anfänger.

    wie kann ich auf die winmm.dll methoden zugreifen?

    [DllImport("winmm.dll")]
    public static extern uint midiInOpen(ref short hMidiIn, uint uDeviceID,
    MidiInProc dwCallback, int dwInstance, int fdwOpen);

    wenn ich jetz winmm. tippe bekomme ich die methodenliste nicht zusehen

    habe irgend wie kein zugriff.

    Grüße Can



  • Kannst du denn nicht lesen? Ich habe doch geschrieben, dass du den Verweis auf ein Namespace hinzufügen sollst.

    ganz oben in deiner *cs Datei muss du folgende Zeile einfügen:

    using System.Runtime.InteropServices;
    


  • Hallo Xqgene

    Das problem ist nicht mehr

    using System.Runtime.InteropServices;
    [DllImport("winmm.dll")]

    Das Problen ist jetz das ich nicht auf die methoden von winmm.dll zugreifen kann.

    Normalerweise wenn ich einen klassen namen tippe dann ein punkt
    wird eine liste mit fuktionen für diese klasse gezeigt.zum beispiel System.
    so eine liste kommt bei winmm.dll nicht.

    in winmm.dll sind ja midi funktionen die möchte ich benutzen.

    wie mache ich das jetz?

    Grüße Fuat



  • also du bist wirklich ein anfänger. 🙂

    VS oder was auch immer du zum Programmieren benutst, zeigt nur für die Klassen die Hilfe (ich spreche jetzt von .NET) an, wo auch die Metadaten existieren. deine winmm.dll ist eine "WINAPI-DLL" und hat mit .NET nix zu tun, du nutzt nur WINAPI, um bestimmte Funktionen aus einer DLL aufzurufen. Welche DLL welche Funktionen beinhalten, kannst du in Win32 SDK Hilfe finden. Ist zwar etwas müselig, aber wer such, der findet. Man such lieber nach einer Funktion, dann kann man auch gleich, welche DLL es ist, rauslesen.

    im klartext: du gehst auf die www.microsoft.com/msdn/ und suchst (was auch immer :D)



  • ja du hast es richtig erkannt bin blutiger anfänger 🙂 die muß es doch auch geben 😉

    wie bekomme ich diese funktion in C# zum laufen?

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_midiinopen.asp

    1 = using System.Runtime.InteropServices;
    [DllImport("winmm.dll")]

    2 = static extern long MMRESULT midiInOpen(
    LPHMIDIIN lphMidiIn,
    UINT_PTR uDeviceID,
    DWORD_PTR dwCallback,
    DWORD_PTR dwCallbackInstance,
    DWORD dwFlags
    );

    3 = um midiin zuöffnen einfach midiInOpen() schreiben

    liege ich da richtig?



  • das weiss ich auch nicht. C# ist für so was nicht besonders geeignet. am besten du schreibst so was in C++.

    vielleicht findest du hier was:
    http://www.codeproject.com/csharp/


Log in to reply