Was ist der einfachste und sicherste Weg, eine Funktion aus einer gemeinsam genutzten Bibliothek/DLL aufzurufen? Ich bin hauptsächlich an Linux interessiert, aber es wäre besser, wenn es einen plattformunabhängigen Weg gäbe.Wie ruft man eine Funktion von einer gemeinsam genutzten Bibliothek auf?
Kann jemand Beispielcode zur Verfügung stellen, um zu zeigen, wie die folgende Arbeit funktioniert, wenn der Benutzer seine eigene Version von foo
in eine gemeinsam genutzte Bibliothek kompiliert hat?
// function prototype, implementation loaded at runtime:
std::string foo(const std::string);
int main(int argc, char** argv) {
LoadLibrary(argv[1]); // loads library implementing foo
std::cout << "Result: " << foo("test");
return 0;
}
BTW, ich weiß, wie das gemeinsame lib (foo.so
) kompilieren, ich muß nur eine einfache Art und Weise weiß, dass es zur Laufzeit zu laden.
Wenn Sie erwähnt die Header unter Unix/Linux zu enthalten ... –
Fertig in den zweiten Codeblock. – vladr
Was ist mit Funktionsnamen Mangling in C++, würde das nicht kompliziert? Auch Sie falsch geschriebene Fenster hier '#include' –
sbk