LINUX.ORG.RU

Работа с буфером обмена на чистом Си в линуксе (баг в SDL2?)

 , , ,


0

2

Нужны функции на чистом Си для чтения и записи текста в буфер обмена.

Поиск находит только виндовские функции или не на Си. С линуксовыми сишными функциями - полная беда. Кроссплатформенные (хотя бы линукс/винда) библиотеки для работы с буфером обмена существуют?

П. С.:

SDL_SetClipboardText и SDL_GetClipboardText у меня на линуксе почему-то не работают. Это баг в SDL2?

Debian 10, XFCE.



Последнее исправление: metaprog (всего исправлений: 2)

Ответ на: комментарий от anonymous

Есть ли простая в использовании сишная сетевая либа, которую можно параллельно гонять в многопотоке?

metaprog
() автор топика
Ответ на: комментарий от metaprog

А чо, обойтись без приколачивания твоей поделки к либам не получается? А как же кулстори про то, что любую либу можно будет использовать?

liksys ★★★★
()
Ответ на: комментарий от liksys

Вопрос в том как эти либы использовать. Проблема в том, что SDL2 тупо не рассчитана на многопоток, по крайней мере в отрисовке (нельзя просто так взять и два окна открыть, уже была тема об этом). Есть что-то получше? Но только не Gtk+.

metaprog
() автор топика
Последнее исправление: metaprog (всего исправлений: 1)
Ответ на: комментарий от metaprog

SDL2 тупо не рассчитана на многопоток, по крайней мере в отрисовке (нельзя просто так взять и два окна открыть, уже была тема об этом). Есть что-то получше? Но только не Gtk+.

WinAPI и Haiku API тебе понравятся.

i-rinat ★★★★★
()
Ответ на: комментарий от metaprog

используй vulkan, чё. правда там окон, буферов обмена и сети нет, но это же мелочи

anonymous
()
Ответ на: комментарий от MOPKOBKA

Wayland это в Linux. Зачем вам там Linux? Смотрите лучше на Windows и Haiku, там с большей любовью относятся к графике, чем в Linux. Haiku к тому же ещё и открытая ОС, если это вдруг важно.

Хотя… ТС зациклился на LabView. Его точно не интересует открытость используемых инструментов.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

ТС зациклился на LabView.

На СКВ …
Переводится так

Смотри Какой я Вумный
anonymous
()
Ответ на: комментарий от metaprog

Однако теперь есть проблема поинтееснее: работает SDL_GetClipboardText только в потоке, в котором был вызван SDL_Init

У меня и в другом потоке тоже работает:

#include <stdio.h>
#include <SDL2/SDL.h>
#include <SDL2/SDL_clipboard.h>

static int ClipboardThread(void *ptr) {
  (void) ptr;
  char *temp = SDL_GetClipboardText();
  printf("%s\n", temp);
  SDL_free(temp);
  return 0;
}

int main(){
  SDL_Thread *thread;
  int status = 1;
  
  SDL_Init(SDL_INIT_VIDEO);
  thread = SDL_CreateThread(ClipboardThread, "ClipboardThread", NULL);
  if(thread) {
    SDL_WaitThread(thread, &status);
  } else {
    printf("ERROR: %s\n", SDL_GetError());
  }
  SDL_Quit();
  return status;
}

$ gcc -o sdlthread sdlthread.c -lSDL2
$ ./sdlthread 
https://www.linux.org.ru/forum/development/16344571#comments

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

Как легко метамаэстро разводит вас на куски рабочего кода, действительно, зачем что то учить и читать, а уж тем более думать, на лоре же есть специально обученные люди.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.