RaFaeL
Anatoly
дык, если сырцы есть, давайте глянем, что ей надо от входа
Berkus
да я посмотрел мельком, вроде ничего не надо, а дальше рыть было лень
Berkus
по идее ее надо собрать с дебагом и гонять кларион под гдб
RaFaeL
https://github.com/jmcnamara/libxlsxwriter
Berkus
но я последний раз на кларионе писал лет 25 назад, не возьмусь дебажить )
RaFaeL
да с кларионом у меня все в порядке )
RaFaeL
там вон не один я этот вопрос задаю
RaFaeL
и тоже крэш у человека
Anatoly
Berkus
RaFaeL
там были еще структуры, я подбирал паддинг и добивался работоспособности
RaFaeL
а тут че то как-то не удалось )
Berkus
а дизассембльни собранную сишную либу и посмотри по каким смещениям оно лезет в структуру и сколько байт копирует?
RaFaeL
это для меня слишком сложно )
🦥Alex Fails
учись 🤷♂️ ищи в мане гцц, как можно дизассемблированный листинг найти
Max
RaFaeL
там самое интересное что процедура то отрабатывает. крэш идет на очистке при вызове последней функции апи
RaFaeL
не знаю че ему нолики не нравятся
RaFaeL
вернее не нолики а нуллы
RaFaeL
не, там просто вылетает всё
RaFaeL
молча закрывается
Anatoly
там ничего военного:
`
RaFaeL
так стоп
Anatoly
if (user_options)
memcpy(options, user_options, sizeof(lxw_image_options));
/* Copy other options or set defaults. */
options->row = row_num;
options->col = col_num;
/* TODO. Read defaults from chart. */
options->width = 480;
options->height = 288;
if (!options->x_scale)
options->x_scale = 1;
if (!options->y_scale)
options->y_scale = 1;
/* Store chart references so they can be ordered in the workbook. */
options->chart = chart;
STAILQ_INSERT_TAIL(self->chart_data, options, list_pointers);
RaFaeL
похоже проект со старыми хедерами собрал, сейчас пересоберу
Anatoly
RaFaeL
так, вроде все заработало! просто крайний раз поправил в одном месте а собрал на другом )
RaFaeL
спасибо всем за помощь!
Berkus
Anonymous
объясните ибо я этого еще не знаю. В чем разница *(что-то) и *что-то. Я уже понял что в скобках какая то магия, но какая? Или просто (что-то)
Александр
Разница в том, что скобки указывают приоритет явно
Александр
*p и *(p) - разницы не будет
Anonymous
*(p+1)
Anonymous
*(p+0)
Oleg
Внутри define хороший тон ставить скобки вообще всегда, потому что передадут в качестве p какое-нибудь a + 10, оно раскроется в *a + 10, что уже совсем не то же самое, что *(a + 10).
(Классический пример на похожую тему: https://pastebin.com/YrBRccWz)
Anonymous
*(p)+1
Alexander "SonnySlave"
Anonymous
я прост когда с итератором работал, разный список выдавало по it-> и (it)->
Anonymous
аааа... Нифига себе.. Все это время так можно было XD у меня cpp хобби на самоучестве потому не знаю многих вещей
Anonymous
а воще
Anonymous
Не важно
Anonymous
это не cpp, это листики чистого си
Anonymous
так а на крестах так же робит оно? Иль как то по-другому?
Anonymous
Что именно?
Berkus
https://blog.tartanllama.xyz/inline-hints/
Anonymous
Что именно?
ну комбинации скобок и переменных. (х). х и т д
Anonymous
не совсем понял вопрос
Berkus
Anonymous
@Dark_Divinity, если только в каких-нить таких местах
#include<iostream>
template <typename T, int size>
decltype(auto) func( T (&arr)[size], int element ){
return (arr[element]);
}
int main(void){
int arr[100];
func(arr,3)=3;
std::cout « arr[3] « std::endl;
}
Anonymous
не схоже я думаю с plain C...
🦥Alex Fails
Anonymous
@Dark_Divinity, все что есть в plain C(кроме функции каких-нить в функции(недавно появилось), да-да, не лямбды), есть в С++
Anonymous
И С++ зараждался так, что бы была совместимость.
Anonymous
Поэтому твой вопрос выглядил риторически и не совсем понятным.
Egor
RattenKong 🦧🐀🦍️
🦥Alex Fails
и еще (ha-ha, classic): sizeof('T') == sizeof(char) в C++. Но вообще - в самом стандарте описаны отличия C от C++.
🦥Alex Fails
#laststd
RattenKong 🦧🐀🦍️
Anatoly
V.
Искал как сделать неблокирующие сокетьі на лине, если кому то надо материал по сему с некоторьіми ответами и вообще про сети, то вот http://beej.us/guide/bgnet/pdf/bgnet_USLetter.pdf
Viacheslav
Что-то я в этом документе ничего про epoll не увидел.
Viacheslav
Делать неблокирующие сокеты через select — можно конечно, но scalability в заднице будет.
Viacheslav
Это переведёт сокет в неблокирующий режим. От ОС ещё как-то надо получать уведомления, что данные там появились. Делать это через select — медленно, потому что для того, чтобы определить, является ли какой-то сокет активным, надо по всему наблюдаемому массиву пробежать.
Viacheslav
epoll_wait смотри, если нужно именно С и только под Linux. Можно ещё libuv или boost asio глянуть.
Дмитрий ⬡
Viacheslav
Ну можно скастовать к uintmax_t, и использовать PRIuMAX из cinttypes.
Viacheslav
Вообще PRIuPTR должно хватить.
Vsevolod
неблокирующие сокеты надо делать через libevent/libev, а не через epoll
Vsevolod
тех, кто делает через epoll, зовут Ленями Пёттерингами и их в аду ждет раскаленный кол
V.
Дмитрий ⬡
Ignat
Толстовато получилось
Vsevolod
epoll - непортабельный системный вызов, что тут еще говорить?
Дмитрий ⬡
А, ну в этом плане да :D
Дмитрий ⬡
А чо, нормась системный вызов, задорный, весёлый.