2011-02-27 4 views
5

जैसा कि हम जानते हैं, एक्लिप्स एक अच्छा ढांचा है जो प्लगइन आधारित अनुप्रयोग विकास का समर्थन करता है। मैं कोडिंग के लिए सी ++ का उपयोग कर रहा हूं और प्लगइन विकास का समर्थन करने वाले ढांचे को कैसे विकसित करना सीखना चाहता हूं। एक अच्छा उदाहरण नोटपैड ++ है जो प्लगइन का समर्थन करता है। क्या कोई अच्छी किताब या संसाधन है जिसका मैं उल्लेख कर सकता हूं।सी ++ - प्लगइन का समर्थन करने वाले ढांचे को कैसे कार्यान्वित करें

आप

+0

आप शायद एक और SO प्रश्न और इसके उत्तर देखना चाहें: http://stackoverflow.com/questions/2627114/c -modularization-ढांचे की तरह-OSGi – Sascha

उत्तर

4

धन्यवाद यह कैसे भी इसे कर सकता है की एक बहुत अच्छा सिंहावलोकन की तरह दिखता है: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2015.pdf

खबरदार है कि इस प्रस्ताव C++ भाषा के लिए एक सामान्य प्लगइन ढांचे के लिए है। आपके विशेष आवेदन के लिए, आपको सभी वर्णित विशेषताओं की आवश्यकता नहीं हो सकती है।

3

मुझे लगता है कि यह एक तरह का मार जवाब है (इसमें अच्छे अंक हैं)। शायद आपको पहले दुभाषियों के बारे में पढ़ना चाहिए: http://www.vincehuston.org/dp/interpreter.html

आपको अपने प्लगइन और स्क्रिप्ट भाषा की सीमाओं का निर्णय लेना चाहिए, शायद आपको बढ़ावा देने में भावना मॉड्यूल के बारे में पढ़ना शुरू करना चाहिए।

0

तुम बस साझा वस्तुओं (लिनक्स) गतिशील, पूर्वनिर्धारित समारोह हुक्स के साथ लोड हो रहा है पर विचार कर सकते हैं ...

#include <stdio.h> 
#include <stdlib.h> 
#include <dlfcn.h> 
int main(int argc, char **argv) { 
    void *handle; 
    double (*cosine)(double); 
    char *error; 
    handle = dlopen ("libm.so", RTLD_LAZY); 
    if (!handle) { 
     fprintf (stderr, "%s\n", dlerror()); 
     exit(1); 
    } 
    dlerror(); /* Clear any existing error */ 
    cosine = dlsym(handle, "cos"); 
    if ((error = dlerror()) != NULL) { 
     fprintf (stderr, "%s\n", error); 
     exit(1); 
    } 
    printf ("%f\n", (*cosine)(2.0)); 
    dlclose(handle); 
    return 0; 
} 

ऊपर dlopen(3) Linux page से चोरी हो गया था, लेकिन यह एक उदाहरण दिखाता है, जहां libm.so मॉड्यूल हो सकता है, और cos, फ़ंक्शन नाम हो सकता है जो आपके हुकिंग को। जाहिर है यह एक पूर्ण मॉड्यूल/प्लगइन ढांचे से बहुत दूर है .... लेकिन इसकी शुरुआत =)

संबंधित मुद्दे