mojmodul.cpp

// kompilacja: g++ -shared -fPIC -lpython2.7 -lboost_python -I/usr/include/python2.7/  mojmodul.cpp -o mojmodul.so

#include <iostream>
#include <string>

/// przykłądowe funkcje i klasa, które będa udostępnione jako moduł pythonowy
std::string funkcja1() {
  std::cout << "Ala ma kota\n";
  return "Kot ma Alę";
}

int funkcja2(int a) {
  return a + 10;
}

class Klasa {
  public:
    Klasa(const std::string& val) {
      this->val = val;
    }
    std::string show() const {
      return "Val is: " + val;
    }
  private:
    std::string val;
};

std::string funkcja3(const Klasa& w) {
  return w.show() + " call from funkcja3";
}


/// definicja modułu pythonowego

#include <boost/python.hpp>
using namespace boost::python;

BOOST_PYTHON_MODULE(mojmodul) {
  def("funkcja1", funkcja1);
  def("f2", funkcja2);

  class_<Klasa>("Klasa", init<std::string>())
    .def("show", &Klasa::show)
    .def("f3", funkcja3)
  ;

  def("funkcja3", funkcja3);
}

XHTML generated by highlight (http://www.andre-simon.de/) from mojmodul.cpp



Copyright (c) 1999-2015, Robert Paciorek (http://www.opcode.eu.org/), BSD/MIT-type license


Redystrybucja wersji źródłowych i wynikowych, po lub bez dokonywania modyfikacji JEST DOZWOLONA, pod warunkiem zachowania niniejszej informacji o prawach autorskich. Autor NIE ponosi JAKIEJKOLWIEK odpowiedzialności za skutki użytkowania tego dokumentu/programu oraz za wykorzystanie zawartych tu informacji.

This text/program is free document/software. Redistribution and use in source and binary forms, with or without modification, ARE PERMITTED provided save this copyright notice. This document/program is distributed WITHOUT any warranty, use at YOUR own risk.

Valid XHTML 1.1 Dokument ten (URL: http://www.opcode.eu.org/programing/python/mojmodul.cpp) należy do serwisu OpCode. Autorem tej strony jest Robert Paciorek, wszelkie uwagi proszę kierować na adres e-mail serwisu: webmaster@opcode.eu.org.
Data ostatniej modyfikacji artykulu: '2014-01-07 19:27:41 (UTC)' (data ta może być zafałszowana niemerytorycznymi modyfikacjami artykułu).