DLL Funktionen nicht gefunden



  • Hi Leute
    Ich habe da ma wieder ein Problem 😛
    Ich weiß nicht , wo das Problem liegt und daher auch nicht ob ich hier richtig bin.
    Und zwar versuche ich atm aus Ruby heraus eine Funktion in einer C++ DLL aufzurufen.
    Diese DLL habe ich schon versucht mit Visual Studio und Code::Blocks&MinGW zu erstellen.
    Der DLL Code könnte simpler nicht sein:

    int ad()
    	{
    	return 1;
    	}
    

    (der Name hat seinen Grund, aber das ist eher nebensächlich^^)
    Nun, wenn ich aber dann versuche die Funktion aus Ruby aufzurufen findet er die Funktion nicht "Runtime Error: GetProcAddress: ad or adA", die DLL findet er aber.
    Die Frage warum er die Funktion nicht findet?

    für Leute die was damit anfangen können hier auch nochma der Rubypart:

    class Interop
      def Interop.test
        callAdd = Win32API.new('rmxpcinterop', 'ad', [], 'i')
        p callAdd.call()
      end
    end
    

    Der Fehler tritt in der dritten Zeile auf.

    Ums vorzubeugen: Ich habe natürlich als Release kompiliert 🙂

    Ich hoffe hier kann mir jemand helfen...

    hat sich erledigt...(Name der exportierten Funktion in C++...)



  • Du musst die Funktion auch aus deiner Dll exportieren und hast dafür zwei Möglichkeiten:

    1. über ein .DEF file mit der Anweisung EXPORT
    2. über dllexport, ist aber M$-spezifisch

    Zu beiden Möglichkeiten sollte die MSDN-Onlinehilfe genügend Beispiele haben.

    m.


Anmelden zum Antworten