Wie hoste ich lizenzierte .Net-Steuerelemente in einer nicht verwalteten C++-App?

StackOverflow https://stackoverflow.com/questions/51436

  •  09-06-2019
  •  | 
  •  

Frage

Ich muss verwaltete Steuerelemente in einer rein nicht verwalteten C++-App hosten und ausführen.Wie macht man das?

Das Ausführen nicht lizenzierter Kontrollen ist normalerweise einfach:

if (SUCCEEDED(ClrCreateManagedInstance(type, iid, &obj)))
{
    // do something with obj
}

Wenn wir jedoch ein lizenziertes Steuerelement verwenden, müssen wir irgendwie eine .licx-Datei in das Projekt einbetten (Ref Anwendungslizenzierung).In einer nicht verwalteten C++-App scheint der erforderliche Kleber nicht zu funktionieren.Das Tool lc.exe sollte in der Lage sein, die Lizenz als Assembly-Ressource einzubetten, aber entweder haben wir nicht den richtigen Aufruf angezeigt, oder es ist stillschweigend fehlgeschlagen.Jede Hilfe wäre dankbar.

War es hilfreich?

Lösung

Die Antwort hängt von der jeweiligen Komponente ab, die Sie verwenden.Wenden Sie sich an Ihren Komponenten-Helpdesk ODER lesen Sie in der Dokumentation nach, was für die Bereitstellung der Komponente erforderlich ist.
Grundsätzlich steht es den Komponentenentwicklern frei, die Lizenzierung umzusetzen wie sie es für richtig halten.Mit der .licx-Datei muss die Komponente in der Lage sein, über GetKey und IsValidKey alles zu tun, was der Entwickler wollte (erklärt in dem von Ihnen geposteten Link).Wenn GetKey also im Komponentenverzeichnis nach einer .licx-Datei sucht, müssen Sie nur sicherstellen, dass diese vorhanden ist.
AFAIK, die Client-Assembly muss nichts anderes tun, als das Steuerelement zu instanziieren.

Auch wenn Sie den Namen der Komponente und den von Ihnen verwendeten lc.exe-Befehl veröffentlichen, könnten die Leute einen Blick darauf werfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top