草庐IT

c++ - 在 C 中包装 C++ 成员函数 - Visual Studio 2013 模板问题

我正在创建一个轻量级跨平台插件框架,它在应用程序和插件之间使用C接口(interface)(通常,但不总是,用C++编写)。我在帮助C++应用程序和插件编写者方面面临的挑战之一是找到一种简单的方法来跨C接口(interface)公开C++对象功能。我目前的解决方案感觉很简单,并使用模板“构建”基于thisgreatstackoverflowquestionandanswer包装底层C++成员函数的C签名函数。templatestructMemberFuncWrapper;template//C++memberfunctionstructMemberFuncWrapper{staticR

c++ - Qt 中两个插件的信号/插槽交互

所以基本上我有一个加载两个插件并连接它们的小应用程序。加载后的第一个插件会创建一个没有任何标题的标签,该标签将被添加到主窗口。第二个插件创建一个将添加到菜单的操作。所以我的应用程序只需要加载这些插件并连接它们。连接它们是什么意思?我的意思是标签插件包含一个插槽,它将修改标签的标题,并且Action插件声明了一个信号。应用程序应connectAction插件信号与标签插槽。我不知道该怎么做。我的猜测是,实际上插件类实现是将自定义信号与标准信号(已触发)连接起来。但无论如何,我的应用程序无法按预期工作。如何在我的应用程序中正确连接一个插件的信号和另一个插件的插槽??这是我的标签插件代码:#

c++ - 如何指定Qt插件构造函数?

我想知道是否可以在Qt插件接口(interface)中指定一个构造函数?(扩展应用程序)我想强制使用接口(interface)的插件在构造函数中获取参数。 最佳答案 我认为完全按照您描述的方式做是不可能的。但是,您可能会尝试创建工厂对象,然后将参数传递给YourFactory::create()方法,该方法返回指向YourObject的指针。另一种(更丑陋的恕我直言)方法是向YourObject添加initialize()方法。查看QFontEnginePlugin的接口(interface)和QScriptExtensionPlu

c++ - 创建插件界面

我正在开发一个需要支持插件架构的应用程序。这是我第一次这样做,所以我不完全确定我需要如何去做。Howtocreatesomeclassfromdll(constructorindll)?(с++)建议我只需要创建一个完全由虚函数组成的类,让DLL在自定义类中实现它,并通过GetPluginObject()方法等返回该自定义对象。然而,C++DLLplugininterface说这还不够,并且适当的(跨多个编译器兼容)方法将需要以下内容:只有基本数据类型可用必须公开诸如COM的QueryInterface之类的东西,这样插件DLL才能正确识别它实现的接口(interface)需要某种形式

c# - notepad++ 插件 - 阅读所有文档的文本

我正在使用C#模板编写Notepad++插件http://sourceforge.net/projects/sourcecookifier/files/other%20plugins/NppPlugin.NET.v0.5.zip/download.有谁知道如何读取所有当前文档文本,因为我需要将所有文本读取为字符串?有谁知道读取当前文档文本的函数吗? 最佳答案 引用ScintillaAPI文档应该可以为您指明正确的方向:http://www.scintilla.org/ScintillaDoc.html#SCI_GETTEXT您链接的

c++ - 将图像插入 gstreamer 管道

在尝试了一些玩具应用程序之后,探索文档和谷歌搜索(包括邮件列表文件)我仍然对我认为相当普遍的事情感到困惑用例。我有一个生成图像(在内存中)的现有代码,我会喜欢将这些图像推送到gstreamer管道中(以创建flv视频在最后)。我找不到“显而易见的方法”。我最好的猜测是挖掘GstMultiFileSrc及其父GstPushSrc的源代码,弄清楚。你们中的任何人都可以指出执行此操作的“显而易见的方法”吗?是否有任何相关的文档/教程/示例?一旦我输入正确,剩下的就是小菜一碟,感谢Gstreamer真棒!(类似于“我的魔法输入->ffmpegcolorspace!ffenc_flv!flvmu

c++ - 为什么我应该在 c++ 而不是 c 中设置插件接口(interface)

由于我的previousquestions我问自己:为插件系统设置C++接口(interface)是否有用?以下几点反对它:不同编译器及其版本之间没有共同的ABI,内存中的对象没有共同的布局没有直接类导出。您必须导出工厂和析构函数。如果你的对象被其他对象持有,问题就会出现delete它们,例如智能指针。STL的不同实现,你不能传递std::list到插件使用不同版本的库,例如Boost如果您将自己限制在C++语言的其余部分,您几乎会以“C子集”告终。使用C++有什么要点吗?Qt-Toolkit是如何解决上述问题的?备注:我主要指的是Linux系统。不过,我对其他平台上的解决方案很感兴趣

c++ - 尝试用 C++/Qt 制作插件系统

我正在制作一个需要插件的基于任务的程序。任务需要具有可以轻松编辑的属性,我认为这可以通过Qt的元对象编译器反射功能来完成(我可能是错的,但我应该能够将其粘贴到QtPropertyBrowser中?)所以这是基础:classTask:publicQObject{Q_OBJECTpublic:explicitTask(QObject*parent=0):QObject(parent){}virtualvoidrun()=0;signals:voidtaskFinished(boolsuccess=true);}然后一个插件可能有这个任务:classPrinterTask:publicTas

c++ - 用 C++ 编写可移植动态加载库的最简单方法是什么?

我正在开发一个项目,该项目有多个相似的代码路径,我想将它们从主项目中分离到插件中。该项目必须保持跨平台兼容,我研究过的所有动态库加载API都是特定于平台的。创建一个无需额外修改代码即可在多个操作系统上编译和运行的动态库加载系统的最简单方法是什么?理想情况下,我想编写一个插件,并让它在项目支持的所有操作系统上运行。谢谢。 最佳答案 您必须为加载系统使用平台相关代码。在Windows上加载DLL与在Unix上加载共享对象是不同的。但是,通过几个#ifdef,您将能够在加载程序中拥有大部分相同的代码库。话虽如此,我认为您可以让您的插件平台

ios - Ionic 插件开发最佳实践

我正在为我正在处理的ionic项目创建一个iOS和Android插件。我遇到的问题/问题是,每次我更改插件中的某些内容时,我都必须删除并再次添加插件。每次更改要测试的内容时删除和添加插件有点耗时。如果我想在iOS插件中记录一些东西或只是更改一个字符并想在ionic应用程序中测试它,我必须这样做:ionicpluginremovemypluginionicpluginaddmypluginionicbuildios有没有更好的方法来开发一个ionic插件而不需要耗费时间来删除和添加插件?我知道ionicstaterestore但它似乎删除和添加了比我上面的解决方案花费更长的时间的插件和平