
zk
13.07.2017
00:10:29
Посоветуйте книги по WinForms на русском или английском.
Интересуют книги для по-быстрому начать формашлепить, а также для углубленного изучения, и все это конечно в дот нет.

Анатолий
13.07.2017
01:08:00

zk
13.07.2017
01:08:44
.Net надо
а про быстро формашлепить, это про быстрый старт, а не про Культина

Google

Анатолий
13.07.2017
01:11:07
.Net надо
Это и есть .net, у него две книги по С++ в задачах и примерах, одна из них которую я тебе назвал как раз по.net

zk
13.07.2017
01:13:33
Хз, смотреть надо, просто подумал что там хуйня
плюсы в задачах и примерах - как-то сомнительно что там норм про win forms

Анатолий
13.07.2017
01:16:33

Vladislav
13.07.2017
01:17:48
зачем нужны винформы если есть гтк+, кутя, wxwidgets...

Анатолий
13.07.2017
01:18:59

zk
13.07.2017
01:19:22

Анатолий
13.07.2017
01:21:47

zk
13.07.2017
01:21:51

Анатолий
13.07.2017
01:24:19

zk
13.07.2017
01:26:46
надо быстро стартонуть - простой гуй, а позже прийдется уже что-то сложное делать

Анатолий
13.07.2017
01:28:01

Google

zk
13.07.2017
01:28:48
ебучая легасисовместимость
О, круто, Чарльз Петцольд что-то написал про win forms

Georgiy
13.07.2017
01:48:44

Анатолий
13.07.2017
01:51:32

Georgiy
13.07.2017
02:03:11

zk
13.07.2017
02:11:15
Программирование с использованием Microsoft Windows Forms
Годный скан + распознанный текст, перевод на русский от M$, 433 с.
Оригинал на английском не нашел
Programming Microsoft Windows Forms
(Microsoft Press, 2005; 384 pages)

Анатолий
13.07.2017
02:13:41
угу только на C#

zk
13.07.2017
02:14:08
Ну да, то что нужно

Golodnyi
13.07.2017
02:25:26
Дратуйте, в сях я нуб, но тем не менее есть вопрос
vector<char> temp_vector;
pthread_create(&thread, NULL, flex, &temp_vector);
pthread_create(&thread2, NULL, draw, &temp_vector);
void * draw(void *arg) {
vector<char> *temp_vector = (vector<char> *) arg;
while (true) {
cout << temp_vector->size() << endl;
usleep(1000000);
}
}
void * flex(void *arg) {
vector<char> *temp_vector = (vector<char> *) arg;
...
...
вот кусочек говнеца, я ожидал что переменная temp_vector при модификации в функции flex, будет доступна в функции draw в модифицированном виде, но она пустая. Размерность вектора изменяется равномерно в функции flex, на старте вектор нулевого размера
что я делаю не так?

zk
13.07.2017
02:38:29
Вывод происходит еще до изменения может?

Golodnyi
13.07.2017
02:39:56
ну там же отдельный поток, while и слип
он выводит каждую секунду, по всему жизненному циклу программы

zk
13.07.2017
02:40:16
ну и пох
>ну там же отдельный поток, while и слип

Golodnyi
13.07.2017
02:42:33

zk
13.07.2017
02:43:16
это было до предыдущего твоего сообщения

Golodnyi
13.07.2017
02:44:00
я вывожу temp_vector->size() в конце функции flex и он выводит 39, после этого temp_vector->size() выводится в draw и показывает 0

Valery
13.07.2017
02:44:51
оставлю здесь
https://cpp-school.unigine.com/

zk
13.07.2017
02:44:56
во flex сделай кон где

Google

Golodnyi
13.07.2017
02:45:22

zk
13.07.2017
02:45:54
константный указатель, может меняешь его где

Golodnyi
13.07.2017
02:49:53
flex: 0x7f876a5fb1e8
draw: 0x7f8769dfbd88
хм....

zk
13.07.2017
02:50:18
std::vector *const tmp
...vector<char>

Golodnyi
13.07.2017
02:51:09
я не могу на старте установить размер
я требуеый размер получаю только в процессе работы программы

zk
13.07.2017
02:51:44
делай конст - компилятор еррор кинет
и размер вектора к указателю не имеет отношения

Golodnyi
13.07.2017
02:53:33
ну мне компилятор говорит что должен быть инициализирован константный вектор

zk
13.07.2017
02:54:31
const* а не *const

Golodnyi
13.07.2017
02:56:53
ошибка: missing template arguments before «const»
std::vector const* temp_vector;

zk
13.07.2017
02:58:07
std::vector<CHAR>
тебе auto не завезли?

Golodnyi
13.07.2017
02:59:33
Хз о чем ты

zk
13.07.2017
03:00:15
auto n = 1; // n is int
у нас еще std::any есть - плюсы почти как твой питон

Google

Golodnyi
13.07.2017
03:02:05
мой питон?) Окэй)
я внутри функций потока тоже должен константно описывать или достаточно только в инициализации в main?

zk
13.07.2017
03:04:29
только во flex

Golodnyi
13.07.2017
03:05:03
почему так?

zk
13.07.2017
03:06:35
чтобы не получилось как сейчас у тебя

Admin
ERROR: S client not available

zk
13.07.2017
03:08:27
что за функция потока?
давай навангую - в условии, за место сравнения, у тебя присваивание

Golodnyi
13.07.2017
03:15:09
че...какое сравнение)
ты думаешь я из тех кто дает какой то выбор программам? Как скзаал, так и будет, никаких if'ов)
щя через минуту сформулирую мысль, что ничего не работает и надо чуть глубже углубиться в код
если объявить переменную обычным образом, а в flex через константу, с ссылкой на исходную, то я не могу никакие методы дергать у вектора

zk
13.07.2017
03:18:39
а про ифы речи и небыло

Golodnyi
13.07.2017
03:18:53
ну и в целом это как то не логично, менять тип на констатный во flex

zk
13.07.2017
03:20:14
в циклах тоже условия бывают
std::vector<char> *const tmp
это константный указатель на вектор - не константый вектор
можно дергать не const методы
но зато такому указателю нельзя присвоить новый адрес
а вообще тут есть супапро

Google

zk
13.07.2017
03:26:18
но тебе надо в ультромегапро
https://t.me/joinchat/AAAAAEH2f4R62LrebHWd7g
но там народу мало

Golodnyi
13.07.2017
03:34:03
тоесть внутри каждого потока я должен константный указатель на вектор делать?
просто если я внутри потока делаю константный указатель, то ловлю такое
ошибка: passing «const std::vector<char>» as «this» argument discards qualifiers [-fpermissive]
temp_vector->clear();

zk
13.07.2017
03:42:04
void flex(void* arg) {
auto tmp_vector = (std::vector<char> *const)arg;
. . .
}

Golodnyi
13.07.2017
03:43:42
ошибка: нет декларации «temp_vector» в этой области видимости

zk
13.07.2017
03:43:54
const * и * const это разные типы

Golodnyi
13.07.2017
03:44:22
ой ссори)

zk
13.07.2017
03:44:39
блять, нет
без auto пиши
std::vector<char> *const temp_vector = . . .

Golodnyi
13.07.2017
03:48:08
flex size: 31
flex address: 0x7fb4e0d7d1e8
draw size: 0
draw address: 0x7fb4dbffed88
во флекс и драв объявил
vector<char> *const temp_vector = (vector<char> *const)arg;
vector<char> *const temp_vector = (vector<char> *)arg;
так тоже разные адреса

zk
13.07.2017
03:49:45
return смотри у них значит

Golodnyi
13.07.2017
03:50:11
какой еще ретурн, я по ссылке передаю
vector<char> temp_vector;
pthread_t thread;
int result = pthread_create(&thread, NULL, flex, &temp_vector);

zk
13.07.2017
03:51:57
указатель не ссылка, а return у flex и draw смотри