Coder Social home page Coder Social logo

rhcad / x3py Goto Github PK

View Code? Open in Web Editor NEW
302.0 29.0 148.0 359 KB

C++ Plugin Framework that can integrate with QT, Python, Java or C#.

Home Page: https://github.com/rhcad/x3py/wiki

C++ 73.62% C 13.74% Python 3.41% C# 0.49% Java 0.83% Perl 0.21% Makefile 7.70%
plugin-architecture cross-platform

x3py's Introduction

         x3py - C++ Plugin Framework
        https://github.com/rhcad/x3py

x3py is designed as a lightweight plugin-framework that uses C++ and STL.
It can integrate with languages including Python, Perl, Java or C# by using SWIG.
x3py can be used to easily develop plugins and applications for multiple platforms.

For MSWindows installation notes, see INSTALL-win.txt .
For Linux, Mac OS X or other systems, see INSTALL-unix.txt .

FAQ and other hints may be found on the Wiki:
        https://github.com/rhcad/x3py/wiki

Discussion and suggestions are welcome. You may commit issues on the site:
        https://github.com/rhcad/x3py/issues

Email to the current maintainers may be sent to <[email protected]>.
Some documents in chinese may be found at http://www.cnblogs.com/rhcad .

Open-source license: Apache License V2.0
You may copy, distribute, and modify it under the terms of the License.

-------------------------------------------------------------------------

x3py:可与Python等集成的轻量级C++插件框架

此框架使用了少部分STL,没有使用MFC、ATL、COM。
x3py 通过使用 SWIG,可与 Python 等语言进行集成(当然可以单独使用C++)。
使用此框架可以快速开发出更多的插件和应用软件,此框架已在 Windows/Linux/MacOSX 上测试过。

要在 Windows 上编译和运行,请参考 INSTALL-win.txt
要在 Linux、Mac OS X 或其他操作系统上编译和运行,请参考 INSTALL-unix.txt

更多文档和常见问题的说明可在下列网站查阅:
        https://github.com/rhcad/x3py/wiki

如果没找到,可以在此提出问题:
        https://github.com/rhcad/x3py/issues

或者与作者联系: [email protected]
        http://www.cnblogs.com/rhcad (博客)

开源协议为 Apache License V2.0,你可修改和再分发,但需要保留来源和作者信息。
欢迎使用(可免费用于商业软件),谢谢。

x3py's People

Contributors

higithubhi avatar rhcad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

x3py's Issues

Cannot Export two Classes in a Plugin?

I added a new class CSimple2 in the example project "plsimple", which is almost the same as CSimple except clsid and class name.
Also, in module.cpp:
XBEGIN_DEFINE_MODULE()
XDEFINE_CLASSMAP_ENTRY(CSimple)
XDEFINE_CLASSMAP_ENTRY(CSimple2)
XEND_DEFINE_MODULE_DLL()

But, in consoledemo, I cannot load the class CSimple2 (x3::Object<ISimple2> q(test_clsid2) ==> q would be NULL). 

Also,  The class CSimple would not be Loaded when I alter module.cpp(in Project plsimple) as below:
 XBEGIN_DEFINE_MODULE()
XDEFINE_CLASSMAP_ENTRY(CSimple2)
    XDEFINE_CLASSMAP_ENTRY(CSimple)
 XEND_DEFINE_MODULE_DLL()

macOS 10.15.2. 编译失败

hi,
我把项目clone 下来,cd 到source/example/consoledemo, 执行make命令,但是报错了
../../../source/public/mk/Makefile.pln:29: main.d: No such file or directory
g++ -MM -MF main.d -I../../../interface/core -I../../../source/public -I../../../interface/example main.cpp
g++ -g -Wall -Wno-unused -DCONSOLE -I../../../interface/core -I../../../source/public -I../../../interface/example -c main.cpp
g++ -g -Wall -o ../../../build/consoledemo main.o -ldl
有什么解决办法么

Can't make on Windows

Hi,
I am experiencing an issue on makefile. I just setup MinGW compiler but no Shell on my Windows 7, so hit some errors as below.

'grep' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'grep' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'grep' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'grep' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'test' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
命令语法不正确。
make: *** [source] Error 1

It seems that makefile depends on some Shell utilities. In order to install X3C, maybe I should install CYGwin instead that is a real Shell environment.

Regards
thinkhy

关于Windows API

为什么会采用少量Windows API函数,而不是纯c++实现,仅是因为方便?

can't make in mac 10.11.2

Dear owner
when i make in x3py folder, the following error happen:
kevinMacBook-Pro:x3py Kevin$ make
--Making project x3manager...
../../../source/public/mk/Makefile.pln:29: module.d: No such file or directory
../../../source/public/mk/Makefile.pln:29: plugins.d: No such file or directory
../../../source/public/mk/Makefile.pln:29: workpath.d: No such file or directory
g++ -MM -MF workpath.d -I../../../interface/core -I../../../source/public workpath.cpp
....
make[2]: Nothing to be done for all'. --Making project mfcapp1... make[3]: Nothing to be done forall'.
--Making project mfcwnd...
make[3]: Nothing to be done for `all'.

Thank you!

cannot find python.h while compiling in windows

Dear owner,
when I compile x3py in windows by using VS2013, the following error happen:
Cannot open include file: 'Python.h': No such file or directory
I have installed python in C:\Python27, do I need to add C:\Python27\include into project settings, such as VC++ Directory Include path ?

Thank you!

Can`t make on mac os x 10.10

问题描述:
平台: osx 10.10, QT5.5.0
编译 x3py-master 下的Makefile时出现以下错误:
文件: /x3py-master/source/uidemo/qtapp1/main.cpp
下的头文件 无法找到。

求助:解决方案。

关于设置__iidmap缓存的作用

设置iidmap缓存的作用如下:
当clsid不为空的时候,没有副作用,
在clsid为空的情况下,可以通过iid来创建一个之前创建的插件对象,例如我的程序中如下使用场景:
主程序创建了一个log插件对象并配置好了,其他插件系统里面不需要知道log插件的clsid,只需要知道log插件的iid,即这样就可以支持创建:
x3::Object<ILog> log;
log.create();
log->setModuleName(_getClassName());
综合考虑,建议加入iidmap缓存,可以支持更多场景,也并不影响原本通过clsid来创建插件对象的问题

how to build your project with codeblocks

Dear owner,
Can you guide me to config codeblocks so that I can compile and debug your project x3pyu with it, which is convenient to have IDE debug tool.
Thanks!

Python脚本,创建插件失败

ActivePython版本:2.7.6.9和2.7.8.10
运行makeplugin.py
提示信息:
New project name: mytool
Traceback (most recent call last):
File "D:\Work\x3c.x3py\x3py-master\tools\makeplugin.py", line 131, in
prjname = inputparam(1, 'New project name: ')
File "D:\Work\x3c.x3py\x3py-master\tools\makeplugin.py", line 127, in inputparam
else: ret = input(prompt)
File "", line 1, in
NameError: name 'mytool' is not defined

执行make遇到不少问题,能不能列出一些依赖的库需要安装的

g++ -MM -MF main.d -I../../../interface/core -I../../../source/public -I../../../interface/uidemo -I"/usr/include/qt4" -I"/usr/include/qt4/QtCore" -I"/usr/include/qt4/QtGui" -I"/usr/include/qt4/QtWidgets" -I"/usr/include/qt4/qtmain" -I"._qt" -DQT_CORE_LIB -DQT_GUI_LIB main.cpp
In file included from main.cpp:1:
mainwnd.h:5:10: fatal error: ui_app.h: No such file or directory
#include "ui_app.h"

GOOGLE了一些信息,感觉是qt编译出来的,但是对qt不熟,这些应该怎么做?

请教关于复制的问题

想实现的效果:假设基类ISimple,继承类CSimple,CSimple有其他的定义的成员变量,我想定义一个clone的函数,里面可以直接复制当前CSimple和他的成员变量,在成员变量的复制我无法做到。

  1. 我想直接CSimple* newSimple = new x3::Object(clsid);或者
    x3::Object* newSimple = new x3::Object(clsid);
    CSimple* newSimple(newSimple );可以具体化到一个实现类,这样才便于访问其成员变量。
    先提前谢谢您的回复

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.