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);
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!");
}
{
tapiRequestMakeCall(telefon, null, null, null);
}
catch (DllNotFoundException)
{
MessageBox.Show("Benötigte dll fehlt!");
}