summaryrefslogtreecommitdiffstats
path: root/doc/sources/c++/main.cpp
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-24 17:43:19 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-24 17:43:19 +0000
commit0292059f4a16434600564cfa3f0ad2309a508a54 (patch)
treed95953cd53011917c4df679b96aedca39401b54f /doc/sources/c++/main.cpp
downloadlibksquirrel-0292059f4a16434600564cfa3f0ad2309a508a54.tar.gz
libksquirrel-0292059f4a16434600564cfa3f0ad2309a508a54.zip
Added libksquirrel for KDE3
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/libraries/libksquirrel@1095624 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'doc/sources/c++/main.cpp')
-rw-r--r--doc/sources/c++/main.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/doc/sources/c++/main.cpp b/doc/sources/c++/main.cpp
new file mode 100644
index 0000000..b8fb8cd
--- /dev/null
+++ b/doc/sources/c++/main.cpp
@@ -0,0 +1,44 @@
+#include "polygon.hpp"
+
+#include <iostream>
+#include <dlfcn.h>
+
+int main()
+{
+ using std::cout;
+ using std::cerr;
+
+ // load the triangle library
+ void* triangle = dlopen("./triangle.so", RTLD_LAZY);
+
+ if (!triangle)
+ {
+ cerr << "Cannot load library: " << dlerror() << '\n';
+ return 1;
+ }
+
+ // load the symbols
+ create_t* create_triangle = (create_t*) dlsym(triangle, "create");
+ destroy_t* destroy_triangle = (destroy_t*) dlsym(triangle, "destroy");
+
+ if (!create_triangle || !destroy_triangle)
+ {
+ cerr << "Cannot load symbols: " << dlerror() << '\n';
+ return 1;
+ }
+
+ // create an instance of the class
+ polygon* poly = create_triangle();
+
+ // use the class
+ poly->set_side_length(7);
+ cout << "The area is: " << poly->area() << '\n';
+
+ // destroy the class
+ destroy_triangle(poly);
+
+ // unload the triangle library
+ dlclose(triangle);
+
+ return 0;
+}