LINUX.ORG.RU

Поясните по поводу создания gtk приложений (libglade)


0

0

До версии 2.12.2 glade мог генрить Си код. После сделали glade 3 который генерит только xml.

Конечно я понимаю, что стало удобнее, не надо перегенерить несколько *.c,*.h файликов, но зато теперь к приложению надо с собой таскать дополнительные библиатеки libglade, наверно, еще и xml. А я пишу на gtk как под Linux так и под оффтоп.
Плюс любой лох может изменить твой main_window.xml и написать в заголовке главного окна "Я х*й" и выложить в сеть, приятного мало. Я конечно понимаю что лицензия LGPL можно создавать как коммерческие (закрытые), так и открытые приложения, но зачем так "открывать" приложение, используюя libglade...

Может я что то недапонял с libglade, объясните плиз?

anonymous

пусть себе переименовывает, нам то какая разница, мы ж не для лохов пишем, а нормальные люди не будут такой фигней страдать

chicane
()

Запакуй xml-формы, подшей к программе. При запуске на ходу распакуешь и подсунешь libglade'у (он xml в памяти умеет брать)

mv ★★★★★
()

в компилируй твой супер-пупер сикретный xml-чег в твоу супер-пупер крутую программы и будет тебе счастье

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

А совсем оторванные подонки вообще могут дизассемблировать бинарник и узнать все секреты... ;)

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

Совсем уж насмерть оторванные подонки сбросят дамп памяти и всё равно выведают все секреты :)

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

ну ж поставить по надзирателю у каждого клиента и если чуть-что сразу по голове постучать, запретить соединения по сети, а лучше убрать всех клиентов сразу чтоб никто не узнал сикретов начинки.

автора программы тоже убрать

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

То есть вы все считаете, что правильно убрали генерацию кода... теперь нужно таскать (помимо gtk) еще кучу библиотек?

anonymous
()

Я написал на perl программу на 25 строк, которая генерирует из glade файла С-массив.
Этот массив компилирую в программу статически.
загружаю через
glade_xml_new_from_buffer
Все. glade файл в runtime не нужен.

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

> Я написал на perl программу на 25 строк

А можно в студию эту чудо программульку на perl, чтоб смысл понять? ;)

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

# convert binary file to hex

use Getopt::Long;

# config variable ########################################
$version = '2007-11-27';

%p = ('file' => '',
'do' => 'help',
'strlen' => 14
);
################################################################
# run
&main(\%p);

################################################################
sub main
{
my $p = shift;
&init_param($p);

if (length($p->{'file'}) > 0) {do_file($p); exit(0);}
if ($p->{'help'} || $p->{'do'} eq 'help') {do_help($p); exit(0);}

}
################################################################
sub init_param
{
my $p = shift;

GetOptions("help" => \($p->{'help'}),
"file=s" => \($p->{'file'}),
"strlen=i" => \($p->{'strlen'})
);
# Check parametrs

}
################################################################
sub do_help
{
my $p = shift;

print("File converter bin -> hex Version:$version\n");
print("Usage: .pl [option]\n");
print("Option are:\n");
print(" --help list help\n");
print(" --do \n");
return (1);
}
################################################################
sub do_file
{
my $p = shift;
my ($f, $s, $v, $c, $first);

open($f,"<".$p->{'file'});
if (!$f)
{
return (-1);
}

binmode($f);
# seek ($f,0,2);
# $ret = tell($f);

$c = 0;
$first = 1;
while(read($f,$s,1))
{

if ($first == 1) {$first = 0;}
else {print (",");}

$v = unpack("C",$s);
printf("0x%02x",$v); # 2 знака в hex
if ($p->{'strlen'} > 0 && $c >= $p->{'strlen'})
{
printf("\n");
$c = 0;
}
$c = $c + 1;
} # while

close($f);

return (1);
}
################################################################

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

Тоже не вариант. HEX правится. Можно посчитать SHA хэш от файла, разбить его на несколько частей (так чтобы в бинарнике небыло непрерывной последовательности байт соотвествующей хешу), потом в проге считать хеш от опиания интерфейса, и если не совпадает то сообщать пользователю, что он пособник пиратов и должен совершить самоубийство в кратчайшие сроки.

Begemoth ★★★★★
()

>Плюс любой лох может изменить твой main_window.xml и написать в заголовке главного окна "Я х*й" и выложить в сеть, приятного мало.

Странно, что у вас любой может что-то выложить в сеть. В таком случае, что мешает ему выложить просто свой бинарник ?

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

маньяки, а не проще создать glade в glade-3 а потом открыть в glade-2 и сгенерить сорцы? %)))

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