Προς το περιεχόμενο

changing the runtime behavior (C) ...


OneDreamCloser

Προτεινόμενες αναρτήσεις

Δημοσ.

καλησπερα σε ολους,

 

με ποσους και ποιους τροπους μπορει να αλλαζει συμπεριφορα runtime ο κωδικας ?

(η ερωτηση μου αφορα C κωδικα ! οποτε δε μπορω να χρησιμοποιησω π.χ. reflection οπως στη java)

 

ευχαριστω εκ των προτερων

Δημοσ.

με ποσους και ποιους τροπους μπορει να αλλαζει συμπεριφορα runtime ο κωδικας ?

πολύ ασαφές...αυτό που ρωτάς

Δημοσ.
καλησπερα σε ολους,

 

με ποσους και ποιους τροπους μπορει να αλλαζει συμπεριφορα runtime ο κωδικας ?

(η ερωτηση μου αφορα C κωδικα ! οποτε δε μπορω να χρησιμοποιησω π.χ. reflection οπως στη java)

 

ευχαριστω εκ των προτερων

Αν θες να τροποποιήσεις εκτελέσιμο C κώδικα (αυτό εκλαμβάνω ότι θέλεις όταν μιλάς για Run-Time) θα πρέπει να ασχοληθείς με τεχνικές Self-Modifying code στην γλώσσα που έχει μεταφράσει ο C compiler το source σου, οπότε αν πρόκειται για Intel/AMD τότε χρειάζεσαι γνώσεις 80x86 Assembly και όχι μόνο.

 

Γενικά αν είναι αυτό που ζητάς, τότε πρόκειται για μεγάλο μπελά καθώς η C/C++ δεν βασίζεται σε VMs όπως η Java ώστε να υπάρχει τόσο μεγάλο flexibility κατά την διάρκεια εκτέλεσης ώστε να συνομιλείς με το VM και να επιφέρεις αλλαγές στον ήδη μεταφρασμένο C κώδικα κατά το run-time, έτσι απλά.

Δημοσ.
Αν θες να τροποποιήσεις εκτελέσιμο C κώδικα (αυτό εκλαμβάνω ότι θέλεις όταν μιλάς για Run-Time) θα πρέπει να ασχοληθείς με τεχνικές Self-Modifying code στην γλώσσα που έχει μεταφράσει ο C compiler το source σου, οπότε αν πρόκειται για Intel/AMD τότε χρειάζεσαι γνώσεις 80x86 Assembly και όχι μόνο.

 

Γενικά αν είναι αυτό που ζητάς, τότε πρόκειται για μεγάλο μπελά καθώς η C/C++ δεν βασίζεται σε VMs όπως η Java ώστε να υπάρχει τόσο μεγάλο flexibility κατά την διάρκεια εκτέλεσης ώστε να συνομιλείς με το VM και να επιφέρεις αλλαγές στον ήδη μεταφρασμένο C κώδικα κατά το run-time, έτσι απλά.

 

σε ευχαριστω πολυ Directx για την απαντηση, πραγματι περιμενα μια οχι τοσο far-fetched λυση, ... το ψαχνω ομως ακομη ...

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...