-2

这是我的main.c

static int l_psd_stop_f(void)
{
    int res;
    int fd_psd_socket;

    if(pthread_mutex_lock(&l_mutex_wrc)) {
        LOG_ERR("Can not lock WRC mutex");
        return -1;
    }
    fd_psd_socket = l_s_wrc.fd_psd;
    l_s_wrc.fd_psd = -1;
    if(pthread_mutex_unlock(&l_mutex_wrc)) {
        LOG_ERR("Can not unlock WRC mutex");
        return -1;}
    res = l_stop_psd_receiver_f(fd_psd_socket);
    fd_psd_socket = -1;
    if(res < 0) {
        LOG_ERR("Can not close PSD socket %d : %s", res, strerror(errno));
        return -1;
    }

    return 0;
}

我想调用并参考此代码,但是当我单击在 x-code ipad 模拟器上运行的按钮时,它会给我带来错误。

这是在ViewController.m

- (IBAction)disconnect:(id)sender {

[self l_psd_stop_f];}
4

1 回答 1

0

而不是在你的 main.c 中声明“ l_psd_stop_f”,而是把它放在你的 ViewController.m 中并像这样声明它:

- (int) l_psd_stop_f
{
    int res;
    int fd_psd_socket;
    ...
    ...
    ...
}

然后您的 " disconnect" 操作将编译并且应该可以工作。

通过在 main.c 中将其声明为“ static int l_psd_stop_f(void)”,它是一个 C 函数,可能仅对从 main.c 中调用它的任何函数可用。但是您的视图控制器无法使用该功能。

所以我要你做的是把那个 C 函数改成一个 Objective-C 方法,一个 ViewController 类的成员。

于 2013-05-25T05:00:54.093 回答