tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
692
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    moeste moeste ist offline Grünschnabel
    Registriert seit
    Jun 2009
    Beiträge
    3
    Hi,

    ich versuche eine Funktion aus einer dll aufzurufen. Die Funktion befindet sich dort in einer Klasse. funktionen die nicht in der Klasse sind kaann ich bereits aufrufen, aber wie mach ich das fuer Klassen funktionen?

    Hier mal mein Beispiel Programm:

    Fuer die DLL:
    <<<dlltest.h>>>
    PHP-Code:
     #ifndef _DLLTEST_H_
     #define _DLLTEST_H_

     #include <iostream>
     #include <windows.h>
     
     
    extern "C" __declspec(dllexportvoid NumberList();

     class 
    MyClass
     
    {
     private:
        
    MyClass();
        ~
    MyClass();
     public:
        
    void LetterList();
     };
     
    #endif 
    <<<dlltest.cpp>>>

    PHP-Code:
    #include "dlltest.h"

     
    using namespace std;

     
    void NumberList() {

           
    cout << "NumberList(): ";
           for(
    int i=0;  i<10i++) {
                
    cout << << " ";
           }
           
    cout << endl;
     }

     
    MyClass::MyClass(){}
     
    MyClass::~MyClass(){}

     
    void MyClass::LetterList()
    {
           
    cout << "LetterList(): ";
           for(
    int i=0;  i<26i++) {
                
    cout << char(97 i) << " ";
           }
           
    cout << endl << endl;
     } 
    ...und fuer die Anwendung

    PHP-Code:
    #include <windows.h>
    #include <iostream>
    #include <conio.h> //wait on user reaction - _getch() -

     
    typedef void (WINAPIcfunc)();

     
    using namespace std;

     
    cfunc NumberList;
     
    cfunc LetterList;
     
    int main() {
            
        
    cout << "Loading library...";
        
    HINSTANCE hLib=LoadLibrary("TheDLL.dll");
           
        if(
    hLib==NULL)
            {
    cout << "Faild! Unable to load library!" << endl;}
        else
            {
    cout << "Done!" << endl;}

        
    cout << "Loading function...";
        
    NumberList=(cfunc)GetProcAddress((HMODULE)hLib"NumberList");

        if((
    NumberList==NULL))
        {
            
    cout << "Faild! Unable to load function." << endl;
            
    _getch();//wait on user reaction
        
    }
        else
        {
            
    cout << "Done!" << endl;
            
    NumberList();
        }

        
    FreeLibrary((HMODULE)hLib);
        
    _getch();//wait on user reaction
        
    return 0;
     } 
    Wie kann ich die Funktion "LetterList" in der main.cpp aufrufen?


    Danke schon mal

    Stefan
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.
    Zitat Zitat von moeste Beitrag anzeigen
    Wie kann ich die Funktion "LetterList" in der main.cpp aufrufen?
    Kannst du nicht, denn es ist eine nicht-statische Methode. Und es würde dir auch nicht s nützen. Du brauchst ja erstmal eine Instanz der Klasse bevor du Methoden aufrufen kannst.

    Dazu schreibst du dir am besten eine Wrapper-Funktion die dir einen Zeiger auf ein neues Objekt der Klasse zurückgibt. Dann kannst du ganz normal über den Zeiger auf die Methoden zugreifen.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    moeste moeste ist offline Grünschnabel
    Registriert seit
    Jun 2009
    Beiträge
    3
    Danke fuer die schnelle Antwort. Ich les mal noch ein bisschen was ueber Wrapper Funktionen und so. Bin einsteiger bei der C++ programmierung.
     

  4. #4
    moeste moeste ist offline Grünschnabel
    Registriert seit
    Jun 2009
    Beiträge
    3
    Hi,
    also ich hab das jetzt uebers Wochenende versucht, aber ohne Erfolg

    Hast du vlt ein Link der das naeher beschreibt wie das geht, oder wonach ich googeln kann?
     

Ähnliche Themen

  1. Funktionen per random aufrufen
    Von studio54 im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 14.10.07, 21:11
  2. Funktionen aufrufen.
    Von soa im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 29.03.07, 08:49
  3. Funktionen aufrufen
    Von branko im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 08.02.06, 14:30
  4. Antworten: 9
    Letzter Beitrag: 10.05.05, 22:03
  5. PHP-Funktionen über die URL aufrufen
    Von bastiglasl im Forum PHP
    Antworten: 1
    Letzter Beitrag: 21.05.04, 16:54

Stichworte