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;
...
...
...
}