Библиотеку не подключили - вот и ругается линкер. Как лечить - положить в то место, где линкер ищет библиотеки, соответствующю либу (socket io), причем правильную версию, для вашей архитектуры.
Возможно библиотека есть, но надо сменить архитектуру, например толкьо x86 включить.
Ваша программа должна предоставлять плагину методы, при помощи которых он может построить интерфейс.
Т.е. весь гуй в основной программе, либы в основной программе, наружу торчит метод типа "Нарисуй окошко по разметке". Плагин дергает этот метод и передает туда свою разметку.
Вопрос за вопрос - какое значение у незанятых элементов массива?
Ответ - если вы не проинициадизировали массив значениями - то неизвестно (обычно).
Следовательно - заполняем массив чем то, что нам извезтно. Копируем туда cats. Считаем количество того, что нам известно, в цикле.
1) Надо жать или нет - решать вам. Может у вас там гигабитная локалка и критичность к производительности сервера/клиента. Или наоборот - GPRS.
2) Правильно - отдельный поток на отдельный коннект со всей логикой. ИМХО.
В компилятор НИКТО не встраивает редактор кода, компоненты и формы.
Да и вообще - большинство компиляторов - бесплатные.
А вот среды разработки - которые как раз и содержат все от 4 до 6 пункта - могут быть платные, да.
По факту:
вам нужен Qt. Это фремворк. Прожевывается многими компиляторами. И легко дружит с QtCreator в плане создания форм.
Сначала надо попрофилировать, на что конкретно уходит много времени.
Если именно на "обновление таблицы" (тобишь на выполнение SQL-запросов) - то переписывание ничего не даст - надо что то делат ьс базой или с запросами.