ερώτηση

Γνώση Υπολογιστών >> ερώτηση >  >> Μετατρέψτε τα αρχεία

Πώς μετατρέπετε το αρχείο dll σε αρχείο exe;

Δεν μπορείτε να μετατρέψετε απευθείας ένα αρχείο DLL σε ένα αρχείο EXE. Εδώ γιατί και τι μπορείτε να κάνετε αντ 'αυτού:

dll εναντίον exe

* DLL (Βιβλιοθήκη δυναμικής σύνδεσης): Ένα DLL είναι μια βιβλιοθήκη λειτουργιών και πόρων που μπορούν να χρησιμοποιηθούν από πολλαπλά προγράμματα. Δεν είναι ένα εκτελέσιμο πρόγραμμα από μόνο του.

* exe (εκτελέσιμο): Ένα αρχείο EXE περιέχει τις οδηγίες για ένα αυτόνομο πρόγραμμα που μπορεί να εκτελεστεί απευθείας.

Τι μπορείτε να επιτύχετε:

1. Δημιουργήστε ένα exe που * χρησιμοποιεί * το dll: Μπορείτε να δημιουργήσετε ένα εκτελέσιμο αρχείο που * φορτώνει * και χρησιμοποιεί τις λειτουργίες μέσα στο DLL. Αυτός είναι ο τυπικός τρόπος χρήσης DLL. Θα χρειαστεί να χρησιμοποιήσετε μια γλώσσα προγραμματισμού (όπως C ++, C#, Python, κλπ.) Για:

- Συμπεριλάβετε το DLL στο έργο σας.

- Καλέστε τις λειτουργίες από το DLL μέσα στον κωδικό σας.

- Συγκεντρώστε τον κωδικό σας σε ένα αρχείο EXE.

2. Δημιουργήστε ένα περιτύλιγμα exe: Εάν θέλετε να κάνετε το DLL ευκολότερο στη χρήση, μπορείτε να δημιουργήσετε ένα απλό πρόγραμμα EXE που:

- Φορτώνει το DLL.

- Παρέχει μια διεπαφή χρήστη ή επιχειρήματα γραμμής εντολών για να αλληλεπιδράσουν με τις λειτουργίες του DLL.

Παράδειγμα (C ++):

Ας πούμε ότι έχετε ένα dll που ονομάζεται `myLibrary.dll` με μια συνάρτηση που ονομάζεται` calculatesum ':

`` c ++

// myLibrary.cpp (συντάχθηκε στο myLibrary.dll)

#include

int calculatesum (int a, int b) {

επιστροφή a + b;

}

`` `

Εδώ μπορείτε να δημιουργήσετε ένα exe που χρησιμοποιεί `mylibrary.dll`:

`` c ++

// main.cpp

#include

typedef int (*calculatesumFunction) (int, int);

int main () {

// φορτώστε το dll

Hmodule hmodule =loadLibrary ("myLibrary.dll");

αν (hmodule ==null) {

// Σφάλμα χειρισμού

επιστροφή 1;

}

// Λάβετε τη διεύθυνση λειτουργίας

CalculatesUmFunction Sumfunction =(CalculatesUmFunction) GetProcaddress (hmodule, "Calculatesum");

αν (sumfunction ==null) {

// Σφάλμα χειρισμού

επιστροφή 1;

}

// καλέστε τη λειτουργία από το dll

int result =sumfunction (5, 3);

printf ("sum:%d \ n", αποτέλεσμα);

// Ελευθερώστε το dll

Freelibrary (Hmodule);

επιστροφή 0;

}

`` `

ΣΗΜΑΝΤΙΚΟ:

* DLLS είναι συγκεκριμένη πλατφόρμα. Ένα DLL που καταρτίζεται για ένα λειτουργικό σύστημα (όπως τα Windows) δεν θα λειτουργήσει σε άλλο (όπως το MacOS ή το Linux).

* dlls εξαρτώνται από άλλες βιβλιοθήκες. Εάν το DLL βασίζεται σε άλλες βιβλιοθήκες, θα πρέπει να συμπεριλάβετε αυτά του έργου σας ή να βεβαιωθείτε ότι είναι διαθέσιμα στο σύστημα προορισμού.

Εάν χρειάζεστε πιο συγκεκριμένη βοήθεια, παρακαλούμε να δώσετε λεπτομέρειες σχετικά με το DLL που έχετε, τη γλώσσα προγραμματισμού που χρησιμοποιείτε και τη λειτουργικότητα που θέλετε να επιτύχετε.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα