Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX
  Bestehende DLL aus DLL ausführen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX
  
BCT Technology Days 2022
Autor Thema:  Bestehende DLL aus DLL ausführen (438 mal gelesen)
romu
Mitglied
Masch. Ing. HTL


Sehen Sie sich das Profil von romu an!   Senden Sie eine Private Message an romu  Schreiben Sie einen Gästebucheintrag für romu

Beiträge: 36
Registriert: 03.03.2003

erstellt am: 07. Mai. 2004 12:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo

Ich habe eine interne UG/Open prog1.dll erstellt. Diese funktioniert und erledigt eine Aufgabe.
Nun erstelle ich eine neue interne Applikation prog2.dll, in welcher ich die bestehende prog1.dll ausführen möchte, bevor dann prog2 weitere Aufagen erledigt.

Wie macht man das  ???? Oder sind meine Ueberlegungen dazu falsch ??

Danke für jede Antwort
Gruss romu

Beispiel:

//  prog2.dll
extern "C" DllExport void ufsta( char *param, int *returnCode, int rlen )
{
    int errorCode = UF_initialize();
    if ( 0 == errorCode )
    {
        --> 1. /* Ausführen der Applikation prog1.dll
        --> 2. /* TODO: Add your application code here */

        errorCode = UF_terminate();
    }

    /* Print out any error messages */
    PrintErrorMessage( errorCode );
}

------------------

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

stefan.f
Mitglied



Sehen Sie sich das Profil von stefan.f an!   Senden Sie eine Private Message an stefan.f  Schreiben Sie einen Gästebucheintrag für stefan.f

Beiträge: 123
Registriert: 03.09.2002

erstellt am: 10. Mai. 2004 07:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für romu 10 Unities + Antwort hilfreich

Am einfachsten ist es, in der prog2.dll eine Funktion zu erstellen und diese dann zur ersten dll linken.

BSP:

//prog2.dll
DllExport extern void Routine (...)
{
}

// prog1.dll
// Routine definieren
DllExport extern void Routine (...);
....
void test()
{
  Routine ();
}

Im linker musst du jetzt noch prog2.lib hinzufuegen


oder du rufst die dll über LoadLibrary:

// ufusr definieren
typedef void (*DLLFUNC)(char *,int *,int);
int ret;

sprintf (filename,"%\\prog2.dll",env);

// Get handle to dll
HINSTANCE hDll = LoadLibrary(filename);

// if handle NULL, an error occurred...
  if(hDll)
  {
    // Get Pointer to the Dll-function (ufusr)    
    DLLFUNC pnMyFunction = (DLLFUNC)GetProcAddress(hDll, "ufusr");
    // Call dll-function
    pnMyFunction("",&ret,0);
    FreeLibrary(hDll);
  }
}

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

romu
Mitglied
Masch. Ing. HTL


Sehen Sie sich das Profil von romu an!   Senden Sie eine Private Message an romu  Schreiben Sie einen Gästebucheintrag für romu

Beiträge: 36
Registriert: 03.03.2003

erstellt am: 14. Mai. 2004 22:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Stefan

vorerst mal besten Dank für Deine Antwort. Hatte leider noch nicht die Möglichkeit dies zu versuchen. Werde ich aber sobald als möglich nachvollziehen. Ds mit der LoadLibrary scheint mir eine elegante Lösung, aber ich habe das Gefühl dass die erste Variante mit den Lib eher der Programmierung mit C entspricht. Ist das richtig ??

Gruss romu

------------------

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz