Announcement

Collapse
No announcement yet.

COM (HRESULT) -> C# Fehlerbehandlung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • COM (HRESULT) -> C# Fehlerbehandlung

    Hallo.

    ich habe eine Datenbank basierend auf einem COM-Server programmiert.
    es gibt beispielsweise folgende funktion

    HRESULT insert([in] LONG clientId, [in] BSTR command);

    die funktion gibt einen HRESULT zurück, der für die Fehlerbehandlung verwendet wird.

    nun möchte ich diese Datenbank in C# ansprechen. wird der datenbankserver als objekt eingebunden, dann sieht der nun etwa so aus:

    void ICOMMyDB.insert(int clientId, string command);

    also kein Rückgabewert mehr, der zur Fehlerbehandlung verwendet werden kann.
    ich habe gehört, dass man die HRESULTs automatisch als Exceptions alla
    try.. catch zur Verfügung hat.

    wie sieht der sourcecode dafür aus?

    danke
    gruß
    edi

  • #2
    Hallo,

    wenn in dem C#-Projekt ein Verweis zu dem COM-Server hinzugefügt wird und auf dem Entwicklungsrechner zu diesem Zeitpunkt noch keine PIA (Primary Interop Assembly) für diesen COM-Server registriert ist, legt Visual Studio automatisch eine IA (Interop Assembly) an. Die Interop Assembly enthält Klassen und Interfaces, die sich um die ganzen Details der COM-Regeln (AddRef, Relese, HResult etc.) kümmern. Aus der C#-Sichtweise verhält sich der COM-Server durch den IA-Proxy wie eine "normale" .NET-Klasse, die im Fehlerfall Exceptions auslöst.

    Comment

    Working...
    X