वहाँ सी में वस्तुओं लोड हो रहा है साझा ++
इन तरीकों तुम हमेशा वस्तु का उपयोग करना चाहते के लिए हेडर फ़ाइल की आवश्यकता होगी दोनों में से किसी के लिए के दो तरीके हैं। शीर्षलेख में कक्षाओं या वस्तुओं की परिभाषाएं शामिल होंगी जिन्हें आप अपने कोड में उपयोग करना चाहते हैं।
स्थिरता
:
#include "blah.h"
int main()
{
ClassFromBlah a;
a.DoSomething();
}
gcc yourfile.cpp -lblah
गतिशील रूप से (लिनक्स में): dlopen Linux man page प्रक्रिया से
#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 की जगह गतिशील प्रतीक खोज के।
काम करने के लिए गतिशील विधि के लिए, आप जिन सभी प्रतीकों को आयात/निर्यात करना चाहते हैं, उन्हें बाहरी सी लिंकेज होना चाहिए।
कुछ शब्द Here हैं जब स्थिर और गतिशील लिंकिंग का उपयोग कब करें।
शायद मैं उलझन में हूं लेकिन ऐसा नहीं लगता कि आपके पास पर्याप्त जानकारी है। उदाहरण के लिए, blah.so क्या है? आप निश्चित रूप से एक संदर्भ का उपयोग करने के बारे में बात नहीं कर रहे हैं? – Goz
वास्तव में "साझा" से आपका क्या मतलब है? – Klaim
एर ... इसलिए फ़ाइलें कोड फाइल नहीं हैं, है ना? शायद आप एक ऑब्जेक्ट को पुनः प्राप्त करना चाहते हैं।तो (साझा पुस्तकालय) फ़ाइल? – Klaim