Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[gelöst] Einstiegspunkt in der DLL nicht gefunden
f.ritz
myCSharp.de - Member

Avatar #avatar-2331.jpg


Dabei seit:
Beiträge: 341
Herkunft: Sibirien

Themenstarter:

[gelöst] Einstiegspunkt in der DLL nicht gefunden

beantworten | zitieren | melden

Hallo zusammen,
ich möchte eine C++ DLL in meinem Code einbinden.
Ich habe die DLL mit dependencywalker durchgeschaut und die definition der auzurufunden Funktion lautet:

int execCommand(char *,char *,char *,int,char *,int)

Also deklariere ich die Funktion, bei mir, wie folgt:

[DllImport("C:\\Programme\\nsuite\\nsuitesig\\nsuitesigAPIDLL.dll", EntryPoint = "execCommand")]
public static extern int execCommand(string arg1, string arg2, string importData, int importSize, string exportData, int exportSize);

Beim Aufrug der Funktion bekomme ich aber folgende Fehlermeldung:
Der Einstiegspunkt execCommand wurde nicht in der DLL C:\Programme\nsuite\nsuitesig\nsuitesigAPIDLL.dll gefunden.

Woran liegt denn das? Stimmt vielleicht der zu übergebende Datentyp nicht?
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von f.ritz am .
private Nachricht | Beiträge des Benutzers
svenson
myCSharp.de - Member



Dabei seit:
Beiträge: 8.746
Herkunft: Berlin

beantworten | zitieren | melden

Vielleicht sind die Namen dekoriert und du hattest im Dependency Walker die entsprechende Funktion zum Undekorieren aktiviert. Alternativ kannst du ja mit der Ordinalzahl anstelle des Namens arbeiten.

Die Signatur kann total falsch sein; das kann bei Laden Auffinden des Funktionszeigers nicht festgestellt werden (das geht einfach nur über Name oder Zahl). Ob die Signatur stimmt, kann man erst wissen, wenn man die Funktion erfolgreich aufrufen kann.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von svenson am .
private Nachricht | Beiträge des Benutzers
f.ritz
myCSharp.de - Member

Avatar #avatar-2331.jpg


Dabei seit:
Beiträge: 341
Herkunft: Sibirien

Themenstarter:

beantworten | zitieren | melden

Super! Vielen Dank für den Tip!

Mit Ordinalzahl geht es jetzt:

[DllImport("C:\\Programme\\nsuite\\nsuitesig\\nsuitesigAPIDLL.dll", EntryPoint = "#1")]
public static extern int execCommand(String arg1, String arg2, String importData, int importSize, String exportData, int exportSize);
private Nachricht | Beiträge des Benutzers