Ios6 从main.c调用viewcontroller.m as按钮时出错

Ios6 从main.c调用viewcontroller.m as按钮时出错,ios6,Ios6,这是我的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

这是我的
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;
}
不要在main.c中声明“
l\u psd\u stop\f
”,而是将其放在ViewController.m中,并按如下方式声明:

- (int) l_psd_stop_f
{
    int res;
    int fd_psd_socket;
    ...
    ...
    ...
}
然后您的“
disconnect
”操作将被编译并应能工作

通过在main.c中声明它为“
static int l\u psd\u stop\u f(void)
”,它是一个c函数,可能只对从main.c中调用它的任何函数可用。但该功能对视图控制器不可用


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

如果它解决了你的问题,你应该点击选票计数下面的小复选标记图标来回答这个问题:)如果像这样“静态void*l\u psd\u recv\u thread\f(void*p\u vp\u arg)”我怎么能改变?把“
-(int)在ViewController的.h文件中,在“
@end
”之前,可以帮助我回答这个问题吗?
- (int) l_psd_stop_f
{
    int res;
    int fd_psd_socket;
    ...
    ...
    ...
}