- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图了解当我将核心应用程序的类文件包含到库(Qt-Plugin)的编译中时会发生什么。假设我有一个插件 - 一个处理程序 - 和一个 Query( h , cpp )(带有私有(private)实现) - 要处理的对象。
编辑
query.h(来自链接)
class Query final
{
public:
friend class ExtensionManager;
Query(const QString &term);
~Query();
void addMatch(shared_ptr<AlbertItem> item, short score = 0);
void reset();
void setValid(bool b = true);
bool isValid();
private:
QueryPrivate *impl;
};
最佳答案
How can the plugin know about the query at runtime?
.h
文件是一个弱接口(interface)定义,并遭受#define
's 在同一事物的不同编译器之间可能不同。 (例如,Microsoft 调试 STL 不适用于发行版 STL)。 class Example1 {
public:
int value1;
};
example1.value1 = 12;
if( this->value1 == 12 ){
}
std::string
.
class Example2 {
public:
void AFunction();
};
AFunction
的任何来电者需要一个可用的实现。这将被静态调用,并且可以在二进制文件和共享对象之间共享
+-------------------+ +-----------------------+
| binary | | shared object |
| Query::AFunction()| | |
| { | | Process( Query &q ) |
| } | | { |
| | o--> | q.AFunction(); | <<< may be in
| main() | | | | shared object
| { | | | | could call binary
| Query q; | | | |
| Process( q ); | ===o | |
+-------------------+ +-----------------------+
makefile
中),那么
AFunction
的实现可能是不同的。
-z, defs
生成 Windows 行为。 .
class ICallback {
virtual void Funcion1( class MyData * data ) = 0;
};
class Plugin {
bool Process( ICallback * pCallback );
};
ICallback
) 的实现的情况下声明和实现函数。这不会创建未解析的符号,也不需要插件在编译插件之前知道该项目。它所需要的只是它的调用者(
m_pluginObject.Process( &myQueryImplementation );
)有一个具体的类型来传入。
.obj
,对于 unix 是
.o
)。
<dictionary>
int SomeIntValue = Address1
bool Class1::SomeFunction( char * value ) = Address2
</dictionary>
<Requires>
std::ostream::operator<<( const char *);
std::cout
</Requires>
<Data>
Address1 : SomeIntValue = 12
</Data>
<Code>
Address2 .MangledSomeFunctionCharStarBool
// some assembly
call ostream::operator<<(char*)
</Code>
MyClass.cc
可能具有实现
MyClass
所需的所有功能,它不需要拥有所有这些东西。
class Class1 {
int ClassData;
public:
bool SomeFunction( char * value);
....
};
char *
作为一个值,并且返回值将是
bool
.在继续编译 C++ 程序时,这个未解析的函数可能会在编译器看到诸如
bool Class1::SomeFunction( char * value )
{
bool success = false;
cout << value;
// some work
return success;
}
ar
)。然后为了找到正确的项目,库被索引(
ranlib
)以生成一个工作库。最近我相信文件的标准已经改变,但概念必须保留。
.dll
的名称。 ,
.so
它提供了它。这导致信息被添加到二进制文件中,例如:-
<SharedObjects>
printf : glibc:4.xx
</SharedObjects>
.so
、
.dll
、
.exe
或 unix 二进制文件)时,命令行上指定的目标文件将绑定(bind)到二进制文件中。这会创建一组已实现的功能(例如
main
)和一组 Unresolved 需求。
.a
、
.lib
)以查看它们是否提供完成完整流程所需的功能。如果它们确实提供了任何功能,则将其视为已解决。实现解析函数的单个目标文件被完全添加到二进制文件中。
-z,defs
SO : unresolved externals .这允许 unix .so 的一些要求被加载二进制文件满足,但可能导致二进制文件不完整。
shared objects
名单及其交付工作计划所需的职能。 关于c++ - 在库之间传递对象和调用成员函数是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37612156/
我的一位教授给了我们一些考试练习题,其中一个问题类似于下面(伪代码): a.setColor(blue); b.setColor(red); a = b; b.setColor(purple); b
我似乎经常使用这个测试 if( object && object !== "null" && object !== "undefined" ){ doSomething(); } 在对象上,我
C# Object/object 是值类型还是引用类型? 我检查过它们可以保留引用,但是这个引用不能用于更改对象。 using System; class MyClass { public s
我在通过 AJAX 发送 json 时遇到问题。 var data = [{"name": "Will", "surname": "Smith", "age": "40"},{"name": "Wil
当我尝试访问我的 View 中的对象 {{result}} 时(我从 Express js 服务器发送该对象),它只显示 [object][object]有谁知道如何获取 JSON 格式的值吗? 这是
我有不同类型的数据(可能是字符串、整数......)。这是一个简单的例子: public static void main(String[] args) { before("one"); }
嗨,我是 json 和 javascript 的新手。 我在这个网站找到了使用json数据作为表格的方法。 我很好奇为什么当我尝试使用 json 数据作为表时,我得到 [Object,Object]
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我听别人说 null == object 比 object == null check 例如: void m1(Object obj ) { if(null == obj) // Is thi
Match 对象 提供了对正则表达式匹配的只读属性的访问。 说明 Match 对象只能通过 RegExp 对象的 Execute 方法来创建,该方法实际上返回了 Match 对象的集合。所有的
Class 对象 使用 Class 语句创建的对象。提供了对类的各种事件的访问。 说明 不允许显式地将一个变量声明为 Class 类型。在 VBScript 的上下文中,“类对象”一词指的是用
Folder 对象 提供对文件夹所有属性的访问。 说明 以下代码举例说明如何获得 Folder 对象并查看它的属性: Function ShowDateCreated(f
File 对象 提供对文件的所有属性的访问。 说明 以下代码举例说明如何获得一个 File 对象并查看它的属性: Function ShowDateCreated(fil
Drive 对象 提供对磁盘驱动器或网络共享的属性的访问。 说明 以下代码举例说明如何使用 Drive 对象访问驱动器的属性: Function ShowFreeSpac
FileSystemObject 对象 提供对计算机文件系统的访问。 说明 以下代码举例说明如何使用 FileSystemObject 对象返回一个 TextStream 对象,此对象可以被读
我是 javascript OOP 的新手,我认为这是一个相对基本的问题,但我无法通过搜索网络找到任何帮助。我是否遗漏了什么,或者我只是以错误的方式解决了这个问题? 这是我的示例代码: functio
我可以很容易地创造出很多不同的对象。例如像这样: var myObject = { myFunction: function () { return ""; } };
function Person(fname, lname) { this.fname = fname, this.lname = lname, this.getName = function()
任何人都可以向我解释为什么下面的代码给出 (object, Object) 吗? (console.log(dope) 给出了它应该的内容,但在 JSON.stringify 和 JSON.parse
我正在尝试完成散点图 exercise来自免费代码营。然而,我现在只自己学习了 d3 几个小时,在遵循 lynda.com 的教程后,我一直在尝试确定如何在工具提示中显示特定数据。 This code
我是一名优秀的程序员,十分优秀!