问题列表 - 第45388页

使用C++类成员函数(不能是静态的)作为C回调函数

我有一个C库函数,需要一个函数指针用于回调,我想传入一个C++成员函数.C++函数修改了一个成员变量,所以我不能使用静态自由函数(如几个类似的帖子所示).我的尝试(如下所示)因编译器错误而失败.

这篇文章最接近我的要求:

使用C++类成员函数作为C回调函数

如果没有静态函数,我怎么能这样做?谢谢!


test.h

#ifndef TEST_H_
#define TEST_H_

#ifdef __cplusplus
extern "C" {
#endif

typedef void (*handler_t)(int foo, void *bar);

void set_handler(handler_t h);

#ifdef __cplusplus
}
#endif

#endif
Run Code Online (Sandbox Code Playgroud)

test.c的

#include "test.h"
#include <stdlib.h>

static handler_t handler_ = NULL;
void set_handler(handler_t h) {
        handler_ = h;
}

void handle_event(int foo, void *bar) {
        if (handler_ != NULL) handler_(foo, bar);
}
Run Code Online (Sandbox Code Playgroud)

TEST.CPP

#include "test.h"
#include <iostream>
using namespace std;

class Foo {
public:
        Foo() : ctr_(0) {};

        // handler needs to …
Run Code Online (Sandbox Code Playgroud)

c c++

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

Python项目和包目录布局

我在python中创建了一个项目,我很好奇如何在python中使用包.

这是我的目录布局:

top-level dir
  \ tests
    __init__.py 
  \ examples
    __init__.py
    example.py
module.py
Run Code Online (Sandbox Code Playgroud)

我将如何在我的example.py模块中包含module.py.我知道我可以将PYTHONPATH设置为顶级目录,但这似乎不是一个好的解决方案.这就是pydev如何解决这个问题,但我想要一个不需要更新环境变量的解决方案.

我可以在example.py的顶部放置一些东西来更新sys.path,如下所示:

from os import path
import sys

sys.path.append( path.dirname(path.abspath(path.dirname(__file__))) )
Run Code Online (Sandbox Code Playgroud)

我认为这也不是一个合适的解决方案.

我觉得我错过了python包的一些基本部分.我在python 2.6上测试它.如果需要进一步说明,请告诉我.

python packages

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

WP7如何在设备上调试飞机模式?

有没有办法在设备上调试飞机模式?我尝试在设备设置中启用飞行模式并禁用计算机上的互联网连接,但NetworkInterface.GetIsNetworkAvailable()仍然返回true.难道我做错了什么?

.net c# silverlight windows-phone-7

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

从c中的函数返回一个字符数组

我可以将函数内部动态创建的数组(使用malloc)返回给调用者吗?

我知道返回一个静态分配的数组是错误的,因为堆栈在函数返回时展开,变量不再有效,但动态分配的变量呢?

c

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

302
推荐指数
9
解决办法
32万
查看次数

有趣的PHP语法:'暗示如果'?

我在Zend Framework项目的默认index.php文件中遇到了这个有趣的行:

defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
Run Code Online (Sandbox Code Playgroud)

它似乎在说"如果没有定义APPLICATION_PATH,那么继续并定义它......"

我不知道PHP中的这种控制结构.它几乎就像是"隐含的if"或"if/else".任何人都可以帮我解决这个问题吗?

php zend-framework

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

从C中的变量构建字符串

我正在研究一个使用套接字的简单的Blackjack游戏,这是我操作系统类的礼貌.我们获得了一个套接字接口,它已经来回传递一个字符数组.

希望我可以这样做:

char[] msgOut = printf("Dealer's Card is %C %C", char1, char2);
sendMsg(msgOut);
Run Code Online (Sandbox Code Playgroud)

然而,谷歌搜索引导我确定printf的返回值是Char的输出数量的int,而不是 chars本身的char [](正如我所希望的那样).

是否有另一个C函数可以让我从变量中构建字符串?

c string printf

16
推荐指数
2
解决办法
4万
查看次数

Javascript:计算给定年份的月数

我有一个HTML页面,包含月份,日期和年份的3个下拉列表,我想知道是否有办法根据月份和年份正确填充月份下拉列表.

我之前没有在客户端做过这个,但看起来像jQuery DatePicker这样的很多控件都是在幕后做的.

javascript date datepicker leap-year drop-down-menu

11
推荐指数
2
解决办法
4万
查看次数

如何使用UISearchDisplayController预加载或初始化搜索?

我在InterfaceBuilder中的UITableViewController中添加了一个UISearchDisplayController.通过添加searchBar: searchBar textDidChange: searchText为表和调用重新生成数据数组的方法,可以很容易地使其工作reloadData.

但是我想在下次用户触摸搜索栏时显示上一个搜索节目,因为触摸(X)并清除它比再次输入更容易.但我无法做到这一点.以下是我尝试过的代码:

- (void) searchBar: (UISearchBar *) searchBar textDidChange: (NSString *) searchText {
    if( searchText && [searchText length] > 0 ) {
        self.displayedRows = [[NSMutableArray initWithCapacity: 1];
        for( NSString *l in self.allRows ) {
            NSRange r = [l rangeOfString: searchText];
            if( r.location != NSNotFound )
                [self.displayedRows addObject: l];
        }
        [self.searchDisplayController.searchResultsTableView reloadData];
    }
}

- (void) searchDisplayControllerWillBeginSearch: (UISearchDisplayController *) controller {
    if( self.lastSearch && [self.lastSearch length] > 0 ) {
        controller.searchBar.text = self.lastSearch;
        [controller.searchResultsTableView …
Run Code Online (Sandbox Code Playgroud)

iphone initialization objective-c uisearchdisplaycontroller

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

startMonitoringSignificantLocationChanges的替代方案?

我有点像iPhone应用程序开发的初学者,但是我正在尝试创建一个基本上每次更新你的位置的应用程序,当它不在前台时,这样我就可以映射一个人在他/她时所处的位置推出一款应用.我以为我可以使用startMonitoringSignificantLocationChange,因为当应用程序在后台时它可以工作,但事实证明这是非常不准确的.我真的希望能够设置一个时间间隔,所以例如,每10分钟一次该位置将被更新,但我不知道如何去做.有任何想法吗?

iphone location background

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