Site logo
Site logo
Programmieren aus Leidenschaft
Programmieren aus Leidenschaft

dll Import in einer C# Anwendung am Beispiel der tapi32.dll


Obwohl das .NET Framework in seiner jetzigen Form schon ein mächtiges Werkzeug ist, reicht es bei weitem nicht aus um sämtliche Funktionen von Windows abzudecken. So ist es beispielsweise möglich, die richtige Hardware vorrausgesetzt, von Windows aus Telefonnumern zu wählen und Telefonverbindungen aufzubauen.

Dafür gibt es viele verschiedene Ansätze, am einfachsten ist es sich mit Bordmitteln zu begüngen und Windows die ganze Arbeit zu überlassen. Für eine C++ Entwickler war dies recht einfach, genügte doch das Kommando
tapiRequestMakeCall(telefon,NULL,NULL,NULL);
um die Windows Wählhilfe oder ein anderes installierte Programm zu starten und die als Parameter "telefon" übergebene Zeichkette anzuwählen. Diese Methode aus der tapi32.dll ist leider kein Teil des .NET Frameworks. Trotzdem gibt es Möglichkeiten diese Funktionen auch in einem C# Programm zu nutzen. Dafür ist es aber notwendig das man diese dll Importiert und die tapiRequestMakeCall-Methode selbst noch ein mal deklariert.
[DllImport("Tapi32.dll", SetLastError = true)]
public static extern long tapiRequestMakeCall(string lpszDestAddress, string lpszAppName, string lpszCalledParty, string lpszComment);
Das ist schon alles! Von jetzt an kann wieder mit dem bekannten Befehl telefoniert werden.
tapiRequestMakeCall(telefon,NULL,NULL,NULL);
Auf diese Weise lassen sich Methoden aus nicht .NET Bibliotheken aufrufen. Sollte die angesprochene dll auf dem Rechner nicht vorhanden sein gibt es natürlich einen Programmfehler, aber diesen kann man zum Glück abfangen.
try
{
   tapiRequestMakeCall(telefon, null, null, null);
}
catch (DllNotFoundException)
{
    MessageBox.Show("Benötigte dll fehlt!");
}