问题列表 - 第23862页

派生类与luabind的绑定函数

我目前正在开发一个基于插件的C++系统,它提供了一个Lua脚本界面,我选择使用luabind.我正在使用Lua 5和luabind 0.9,它们都是静态链接的,并且使用MSVC++ 8编译.我现在无法在luabind中绑定函数,因为它们是在派生类中定义的,而不是它的父类.

更具体地说,我有一个名为'IPlugin'的抽象基类,所有插件类都从该基类继承.当插件管理器初始化时,它会注册该类及其功能,如下所示:

luabind::open(L);
luabind::module(L) [
    luabind::class_<IPlugin>("IPlugin")
    .def("start", &IPlugin::start)
];
Run Code Online (Sandbox Code Playgroud)

由于它只是在运行时知道哪些有效的插件类可用,我不得不以一种迂回的方式解决加载插件.插件管理器将工厂函数公开给Lua,它接受插件类的名称和所需的对象名称.工厂然后创建对象,将插件的类注册为继承自"IPlugin"基类,并立即调用创建的对象上的函数,该函数将自身注册为具有Lua状态的全局,如下所示:

void PluginExample::registerLuaObject(lua_State *L, string a_name)
{
    luabind::globals(L)[a_name] = (PluginExample*)this;
}
Run Code Online (Sandbox Code Playgroud)

我最初这样做是因为我在Lua确定对象的派生类最多时遇到了问题,就像我从插件管理器注册它一样,它只被称为'IPlugin'的子类型而不是特定的子类型.我不确定这是否甚至是必要的,但是它可以工作,随后可以从'a_name'下的Lua访问创建的对象.

但是,我遇到的问题是,无法使用派生类中定义的函数,这些函数在父类中根本没有声明.在基类中定义的虚函数(例如上面的'start')工作正常,并且在新对象上从Lua调用它们运行来自'PluginExample'类的相应重新定义的代码.但是如果我向'PluginExample'添加一个新函数,这里的例子是一个不带参数并返回void的函数,并像这样注册它:

luabind::module(L) [
luabind::class_<PluginExample, IPlugin>("PluginExample")
    .def(luabind::constructor<PluginManager&>())
    .def("func", &PluginExample::func)
];
Run Code Online (Sandbox Code Playgroud)

在新对象上调用'func'会产生以下Lua运行时错误:

No matching overload found, candidates:
void func(PluginExample&)

我正确使用':'语法,因此不需要'self'参数,似乎突然Lua无法再确定对象的派生类型.我确信我做错了,可能与我的系统架构所需的两步绑定有关,但我无法弄清楚在哪里.我非常感谢一些帮助=)

c++ inheritance lua luabind

6
推荐指数
0
解决办法
1672
查看次数

C Struct初始化:奇怪的方式

在阅读我遇到的代码时,结构的以下定义和初始化:

// header file
struct foo{
char* name;
int value;
};

//Implementation file
struct foo fooElmnt __foo;
// some code using fooElmnt
struct foo fooElmnt __foo = {
    .name = "NAME";
    .value = some_value;
}
Run Code Online (Sandbox Code Playgroud)

这在C中意味着什么?它与通常的声明有什么不同?

c struct initialization

2
推荐指数
1
解决办法
1467
查看次数

将继承添加到Qt设计的对象

我有一个问题,我想将MVC模式实现到我的QT应用程序,这就是为什么我需要在我的QTableWidget中继承关于另一个类的例子

myClass
{
    myMethod();
}
Run Code Online (Sandbox Code Playgroud)

但我们的QTableWidget由我们的Mainwidows包含,由QT设计师设计并生成一个ui_MainWindow类!

你知道怎么做吗 ?

这是Qt Designer内部的一个方法吗?或另一种方法?

谢谢您的回答 !

c++ qt4

3
推荐指数
1
解决办法
629
查看次数

如何创建2列以分隔标签和表单中的输入元素

我的表格如下:

**

    <p><label>first name</label><input type=text name=fn /></p>
    <p><label>last name</label><input type=text name=ln /></p>

</div>
<div id="rightform">
    <p><label>state</label><input type=text name=state /></p>
    <p><label>city</label><input type=text name=city /></p>

</div>
Run Code Online (Sandbox Code Playgroud)

**

我想要布局,以便所有标签都在左侧对齐(标签文本右对齐),输入框全部对齐,并浮动在左侧。

因此,表单应如下所示:

          asdf-label INPUTBOX
           123-label INPUTBOX
   yet-another-label INPUTBOX
Run Code Online (Sandbox Code Playgroud)

上述表格的右侧还有另一种形式(id =#rightform)

真的很困惑如何正确执行此操作...

html css

1
推荐指数
1
解决办法
6349
查看次数

iphone和ipad开发

任何人都可以解释如何开始iPhone和iPad开发?你不用付钱吗?还是只是在你发布时付钱?

我不知道从哪里获得iPad SDK或任何东西.

我已经在Snow Leopard上安装了XCode 3.2.1.

iphone ipad

1
推荐指数
1
解决办法
801
查看次数

c#存储库模式:每个子类一个存储库?

我想知道您是否要为域模型的每个子类创建一个存储库.例如,有两个类:

public class Person
{
    public virtual String GivenName { set; get; }
    public virtual String FamilyName { set; get; }
    public virtual String EMailAdress { set; get; }    
}

public class Customer : Person
{
    public virtual DateTime RegistrationDate { get; set; }
    public virtual String Password { get; set; }        
}

您是否会创建PersonRepository和CustomerRepository,或者只创建PersonRepository,它还能够执行与客户相关的查询?

c# repository-pattern

5
推荐指数
1
解决办法
1538
查看次数

PHP/MySQL数据库连接优先级?

我有一个生产数据库,其中包含使用统计信息 该数据库负责许多其他事情(不仅仅是统计计算).我使用php定期在分辨率决定的桶中汇总有趣统计数据的不同分辨率(日,周,月,年).

我编写的php应用程序在运行时"完成"其数据,这样它将计算自上次运行以来的分辨率和周期的所有累计统计数据.如果我们想要将其关闭以调试数据库性能问题,这很有用,因为我可以将其重新打开并使其完全独立于脚本运行频率完成其数据集(cron作业可以从每天移动到每周等).

我遇到的问题是计算是相当密集的,并推动生产数据库服务器的QPS.有没有办法在特定的数据库连接上设置"优先级",以便它只使用"off-cycles"来进行这些计算?

也许正确的反应是将我正在处理的表复制到不同的统计数据库中,但遗憾的是,我没有足够的资源来尝试这样的事情(尚未).

提前谢谢你的帮助,乔希

php mysql statistics

6
推荐指数
1
解决办法
1627
查看次数

某人能够从内存中输入代码需要多长时间?

我知道这个问题可以用一个简单的句子来回答,并且它可能被视为主观的,然而,我是一个有兴趣从事编程生涯的年轻学生,并想知道你们有多长时间去了你现在的经验水平?

我问这个是因为我正在努力在Android平台上用Java构建一个应用程序,让我感到困扰的是,我不断地在我的应用程序中查找如何编写某段代码,例如写入数据库,或者如何if语句应该是结构化的.

我的问题是,在您编写代码之前,您需要多长时间才能真正了解下一行代码的具体内容?

language-agnostic

31
推荐指数
7
解决办法
2575
查看次数

没有数据源控制的高效Gridview分页问题

我试图在不使用数据源控件的情况下使用gridview进行高效分页.有效率,我的意思是我只检索我打算显示的记录.

我正在尝试使用PagerTemplate来构建我的寻呼机功能.

简而言之,问题是如果我只绑定我打算在当前页面上显示的记录,gridview不会呈现其寻呼机模板,所以我没有得到分页控件.

这几乎就像我必须绑定的记录多于我打算在给定页面上显示的记录,这不是我想要做的事情.

.net c# asp.net pagination gridview

1
推荐指数
1
解决办法
9752
查看次数

GCC,Unicode和__FUNCTION__

我正在尝试使我的项目在GCC下编译(Visual Studio完美地编译它).

我有一个自定义断言函数,它抛出一个wstring消息.它的一部分是_ _FUNCTION__宏,我使用MSDN中的WIDEN宏"unicodize"

#define WIDEN2(x) L ## x
#define WIDEN(x) WIDEN2(x)
Run Code Online (Sandbox Code Playgroud)

它在MSVC中编译好,但它在GCC中打印出来:

error: ‘L__FUNCTION__’ was not declared in this scope
Run Code Online (Sandbox Code Playgroud)

我可以使用的唯一解决方案是使用mbstowcs在运行时将__FUNCTION __的内容转换为wstring,但我想找到一种编译时方法.

感谢帮助.

c++ unicode gcc

6
推荐指数
1
解决办法
3672
查看次数