这是我的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];}
答案 0 :(得分: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类的成员。