GIO를 사용하는 간단한 cpp 파일이 있습니다. 내 컴파일 에러를 보여주기 위해 모든 것을 제거했다 :컴파일러 오류를 해결하는 데 도움이 필요합니다 : 오류 : 'int'에서 'GIOCondition'으로의 변환이 올바르지 않습니다.
여기입니다 오류가 내가 얻을 : 여기
My.cpp:16: error: invalid conversion from ‘int’ to ‘GIOCondition’
make[2]: *** [My.o] Error 1
은 전체 파일입니다
#include <glib.h>
static gboolean
read_socket (GIOChannel *gio, GIOCondition condition, gpointer data)
{
return false;
}
void createGIOChannel() {
GIOChannel* gioChannel = g_io_channel_unix_new(0);
// the following is the line causing the error:
g_io_add_watch(gioChannel, G_IO_IN|G_IO_HUP, read_socket, NULL);
}
내가 지오를 사용하는 다른 예를 보았다, G_IO_IN | G_IO_HUP을 호출 할 때도 동일한 작업을 수행하고 있습니다. 그리고 문서 http://www.gtk.org/api/2.6/glib/glib-IO-Channels.html은 내가 포함 할 필요가 있다고 말했다.
오류를 해결하는 방법을 알려주십시오.
내가 생각할 수있는 한가지는 cpp 파일에서이 작업을 수행하는 것입니다. 하지만 g_io_add_watch는 c 함수입니까?
도움 주셔서 감사합니다. 나는 이것에 시간을 보냈지 만 어디에도 가지 않았다.
감사합니다. 나는 그것을 캐스팅해야하는 이유 그러나 GIOCondition은 '열거'형식 정의 열거 형으로 정의 된 경우 { G_IO_IN \t GLIB_SYSDEF_POLLIN, G_IO_OUT \t GLIB_SYSDEF_POLLOUT, G_IO_PRI \t GLIB_SYSDEF_POLLPRI, G_IO_ERR \t GLIB_SYSDEF_POLLERR, G_IO_HUP \t GLIB_SYSDEF_POLLHUP, G_IO_NVAL \t GLIB_SYSDEF_POLLNVAL } GIOCondition; – michael
GIOCondition은 사용자가 정의한 유형이므로 유형 변환해야합니다. 열거 형에 대한 자세한 내용은 http://cplus.about.com/od/introductiontoprogramming/p/enumeration.htm을 참조하십시오. – Jay