Вот, кстати, интересная новость: Nokia анонсировала официальный порт Qt для платформы Maemo 5
там даже отображение OSM’овских карт показали
UPD: Заюзал Boost.Python!
Получилось написать пример, который заработал!!!
Статический и динамический миры соединены!!!
Даже не верится что оно работает)))
Вот если кому интересно, надеюсь пригодится:
#include <stdlib.h>
#include <iostream>
#define BOOST_PYTHON_STATIC_LIB
#include <boost/python.hpp>
using namespace boost::python;
class CppClass {
public:
CppClass()
{
t = 0;
}
int getNum() {
return t;
}
void inc()
{
t++;
}
private:
int t;
};
int main( int argc, char ** argv )
{
setlocale(LC_ALL, "Russian");
try
{
Py_Initialize();
object main_module((handle<>(borrowed(PyImport_AddModule("__main__")))));
object main_namespace = main_module.attr("__dict__");
main_namespace["CppClass"] = class_<CppClass>("CppClass")
.def("getNum",&CppClass::getNum)
.def("inc",&CppClass::inc);
CppClass *cpp = new CppClass();
main_namespace["cpp"] = ptr(cpp);
PyRun_String( "print \"Python: \", cpp.getNum()\n",
Py_file_input, main_namespace.ptr(), main_namespace.ptr());
std::cout << "C++ inc()" << std::endl;
cpp->inc();
PyRun_String( "print \"Python: \", cpp.getNum()\n"
"cpp.inc()\n"
"print \"Python inc()\" \n"
"print \"Python: \", cpp.getNum()\n",
Py_file_input, main_namespace.ptr(), main_namespace.ptr());
std::cout << "C++: " << cpp->getNum() << std::endl;
std::cout << "C++ inc()" << std::endl;
cpp->inc();
PyRun_String( "print \"Python: \", cpp.getNum()\n",
Py_file_input, main_namespace.ptr(), main_namespace.ptr() );
Py_Finalize();
}
catch( error_already_set )
{
PyErr_Print();
}
system("pause");
return EXIT_SUCCESS;
}
На выходе получаем:
Python: 0
C++ inc()
Python: 1
Python inc()
Python: 2
C++: 2
C++ inc()
Python: 3
Для продолжения нажмите любую клавишу . . .
PS:* кажется я эту тему уже, можно сказать, в блог превратил)))*