Gateway_man Geschrieben 12. Mai 2010 Geschrieben 12. Mai 2010 Hallo, so vorab, ich war mir nicht ganz sicher wo ich diesen Thread schreiben sollte, da eigentlich zweierlei Sprachen im problem involviert ist. Jedoch weiß ich nicht in welcher ich den Fehler gemacht habe. Ich habe eine dynamische C++ DLL und will mit vb.net auf eine Funktion dieser DLL zugreifen. Als kleines beispiel wie ich mir das dachte: //C++ DLL auschnitt #include <stdafx.h> #include <string> #include <iostream> using namespace std; int main() { return 0; } __declspec(dllexport) string _export(int p1, string p2, string p3, string p4) { //auskommentierter Inhalt return "nicht relevant"; } Und so habe ich mir eigentlich den Aufruf in VB.NET vorgestellt: public Class Muster Declare Function _export Lib "Ov32.dll" Alias "_export" ( _ ByVal p1 As Integer, ByVal p2 As String, ByVal p3 As String, ByVal p4 As String) As String Private Function testaufruf() as String Dim content as string = _export(1, "a", "b", "c") return "Muster" End Funktion End Class Nun kommt in vb.net die Fehlermeldung: Der Einstiegspunkt "_export" wurde nicht in der DLL "Ov32.dll" gefunden. Die DLL liegt im Debugverzeichnis des Projekts welche diese benutzten soll. Hat jemand eine Idee was ich eventuell Falsch gemacht haben könnte? Lg Gateway Zitieren
Klotzkopp Geschrieben 13. Mai 2010 Geschrieben 13. Mai 2010 Schau dir mal mit dem Dependency Walker an, wie das exportierte Symbol der DLL wirklich heißt. Zitieren
Gateway_man Geschrieben 13. Mai 2010 Autor Geschrieben 13. Mai 2010 (bearbeitet) Die c++ DLL ist selbstverfasst also ist auch der quellcode einsehbar. Kann dir jetzt grad gedanklich nicht folgen. Denn ich seh ja wie die Funktion in der DLL deklariert ist und mit welchen Parametern. Bearbeitet 13. Mai 2010 von Gateway_man Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.