Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по программированию на C/С++

Автор: akaGM
Дата сообщения: 10.09.2009 16:48
Abs62
ну как-то так я себе это и представлял...
Автор: Rootless_Wanderer
Дата сообщения: 14.09.2009 11:16
Подскажите, пожалуйста, как работать с юникодом и MySQL API в С++ (gcc).
То есть я делаю что-то вроде row = mysql_fetch_row(res), как мне потом из MYSQL_ROW законвертить в std::wstring или что-то вроде этого? Как потом этот std::wstring обратно засунуть в базу? Очень нужна помощь по этому вопросу!
Автор: Aleksoid1978
Дата сообщения: 25.09.2009 04:12
Вопрос такой - можно либо в коде, либо в свойствах проекта(VS 2008) указать что программа будет использовать не более 2-х ядер, не важно что их в системе больше.

Просто юзаю ConEmu+Far, так вот мало того что сам ConEmu запускается и выставляется автоматом только 2 ядра из 4, так и все проги которее потом запускаешь из под Фара - тоже тока 2 ядра(смотрим через TaskManager).

Вот здесь живет сам ConEmu - http://code.google.com/p/conemu-maximus5/
там и бинарники есть, и исходники.
Автор: Aleksoid1978
Дата сообщения: 25.09.2009 08:49
Все, вопрос снимается, нашел причину ... SetProcessAffinityMask();
Автор: Eminence
Дата сообщения: 27.09.2009 10:52
Господа, никак не могу прояснить одной вещи. Сейчас в прессе постоянно пишут, что приложения нужно проектировать с учетом многоядерности процессоров. Хоть убей не понимаю, как это нужно учитывать. Ведь многопоточные приложения существуют очень давно, еще на заре развития операционных систем. И несколько параллельных потоков система сама раскидает на несколько процессоров. Так что же здесь необходимо учитывать?
Автор: Lyrik
Дата сообщения: 27.09.2009 17:26
Eminence
распараллеливать на уровне алгоритмов.
Автор: Eminence
Дата сообщения: 27.09.2009 22:14
Ну так и раньше же распараллеливалось. Создавались отдельные потоки, осуществлялась многопоточная обработка и т.п. Сколько иногда возиться приходилось, чтобы синхронизацию обеспечить
Автор: Infinite Retrieval
Дата сообщения: 28.09.2009 00:26
Правильно ли я понимаю, что в обычных C возможно лишь создание обычного статического массива структур, тобишь никаким образом выделить память во время работы программы под структуры, или наоборот, освободить память, занятую структурой невозможно? А в C++ сие можно делать операторами new и delete, так?
Автор: KADABRA
Дата сообщения: 28.09.2009 00:43
Infinite Retrieval

Цитата:
Правильно ли я понимаю, что в обычных C возможно лишь создание обычного статического массива структур, тобишь никаким образом выделить память во время работы программы под структуры, или наоборот, освободить память, занятую структурой невозможно?

Нет, не правильно. Читать google://malloc, google://free.
Автор: Infinite Retrieval
Дата сообщения: 28.09.2009 00:43
Да, и можно ли перевыделять память под динамический массив объектов (тобишь расширить массив не стирая предыдущие объекты) (тобишь аналог realloc, но классовый, чтоб вызывал коснтруктор)?

Добавлено:
тобишь можно
typedef
struct a
{
/////
} mystr;
mystr *p;
p = malloc(sizeof(mystr));

так???
Автор: Qraizer
Дата сообщения: 28.09.2009 03:16
Нет, нельзя. Но если ты используешь контейнеры стандартной библиотеки, к примеру, std::vector<>, то можно использовать их собственные средства.
В принципе несложно самому написать шаблонную функцию. Первое, что приходит в голову (неэффективное, но простое и безопасное):
Код: template <typename T>
T* renew(T* array, size_t curSize, size_t newSize) // без curSize обойтись можно, но муторно
{
T* temp = new T[newSize];

for (size_t i=0; i<curSize; ++i) temp[ i ] = array[ i ];
delete[] array;

return temp;
}
Автор: sergeymd21
Дата сообщения: 28.09.2009 18:35
дана к примеру матрица:

a b c d e f
1, 0, 0, 1, 0, 1, a
0, 1, 1, 0, 0, 1, b
0, 1, 1, 0, 0, 0, c
1, 0, 0, 1, 0, 1, d
0, 0, 0, 0, 1, 0, e
1, 1, 0, 1, 0, 1 f

Тут нужно найти начальное покрытие ну то есть оно ищется так: построчно просматривается матрица и где есть единица составляется пара из строки и столбца

a,adf - 1-ая строка и 1-ый и 4-ый и 6-ый столбцы

Вот оно найдено: C0={(a,adf),(b,bcf),(c,bc),(d,adf),(e,e),(f,abdf)}

ВНИМАНИЕ ВОПРОС:как бы мне это оформит в c++ , какой тип данных ,ну то есть я могу сделать массив arr[5][5] и туда это все помещать,но там будут оставаться не заполненные области т.к. эл-ов не равное кол-во.

Мне просто потом нужно работать с этими группами искать их пресечение, объединение и т.д
Автор: Eminence
Дата сообщения: 28.09.2009 19:09
Можно сделать разреженный массив, используя структуры. Одним из элементов структуры будет признак, указывающий, имеется ли значение в ячейке или нет, а другой - само значение:

struct SData
{
SData() {m_bExist = false;}
bool m_bExist;
int m_value;
};

SData array[5][5];

Можно сделать также массив массивов, но здесь необходимо использовать STL контейнеры, поскольку мы заранее не знаем размерность массива
Автор: sergeymd21
Дата сообщения: 28.09.2009 19:35
мне к примеру потом нужно делать такие операции (a U b,adf &#8745; bcf)=(ab,f) и так каждая пара с каждой


Добавлено:
&#8745; -пересечение
Автор: alex1252008
Дата сообщения: 28.09.2009 20:58
Использую MFC. Каким методом устанавливать св-ва диалоговых_окон/элементов_управления в Visual C++ 2008?
Автор: Eminence
Дата сообщения: 28.09.2009 22:54

Цитата:
мне к примеру потом нужно делать такие операции (a U b,adf &#8745; bcf)=(ab,f) и так каждая пара с каждой

Тогда массив массивов - наиболее подходящая структура. Есть отдельный массив, и каждый элемент массива - тоже массив, состоящий из элементов результирующего мнодества

Цитата:
Использую MFC. Каким методом устанавливать св-ва диалоговых_окон/элементов_управления в Visual C++ 2008?

2008 не использовал, но, насколько мне известно, MFC уже давно не менялось. В любом случае, свойства устанавливаются функцией SetWindowLong.
Автор: alex1252008
Дата сообщения: 28.09.2009 23:36

Цитата:
2008 не использовал, но, насколько мне известно, MFC уже давно не менялось. В любом случае, свойства устанавливаются функцией SetWindowLong.

Функции SetWindowLong нет.
Автор: akaGM
Дата сообщения: 29.09.2009 10:52
sergeymd21
в качестве типа глянь в сторону битовых массивов...
Автор: shadow_user777
Дата сообщения: 29.09.2009 12:35
Господа, нид небольшой хэлп.
Интересует исходник простой софтинки ищущей скрытые процессы.
Процессы скрываются программой HideToolz ( http://xs-rus.ucoz.ru/load/1-1-0-13 )

Графический интерфейс не нужен. Возможно просто поиск и возможность убийства срытого процесса. Ну очень надо

Почитал инет - в этом задействована функция -ZwQuerySystemInformation
Но так как я в программировании абсолютный 0, прошу помощи
Автор: Eminence
Дата сообщения: 29.09.2009 13:05
alex1252008, SetWindowLong - это функция API
Автор: Lyrik
Дата сообщения: 29.09.2009 17:10
shadow_user777

Цитата:
Скрытие процессов от всех ring3 методов обнаружения.

вариант с ZwQuerySystemInformation навряд ли поможет. могу посоветовать: пишется драйвер, который обходит дерево процессов, используя EPROCESS. думаю данный метод поможет обнаружить скрытые процессы посредством HideToolz. хотя надо тестить HideToolz и смотреть что к чему.
Автор: shadow_user777
Дата сообщения: 30.09.2009 08:35
Lyrik
Я сливал и ставил различные просмотрщики процессов, они видят ХайдТулзы, поэтому я думаю что в принципе это не столь сложно просто мои познания в этой области сильно ограничены, поэтому и прошу помощи в создании минимальной консольной утилиты.
Автор: Lyrik
Дата сообщения: 30.09.2009 12:46
shadow_user777
а можно названия этих просмотровщиков, может я какой-то юзал и тогда чето посоветую.
Автор: shadow_user777
Дата сообщения: 30.09.2009 15:50
Process Master
Rootkit Unhooker
UnHackMe

Вот информация:
http://www.wasm.ru/article.php?article=hiddndt
http://www.nowa.cc/showthread.php?t=65972
Тут есть куски кода но я в этом ни бум-бум
Автор: Infinite Retrieval
Дата сообщения: 30.09.2009 23:36
Подскажите пожалуйста, захотелось использовать методы класса Random из System namespace (как я понимаю это из .NET библиотеки), но вот не получается


Код:
using namespace System;
int main()
{
    double a;
    Random obj;
    a = obj.NextDouble();
    return 0;
}
Автор: TargeTSan
Дата сообщения: 02.10.2009 12:20
Несколько моментов. Во-первых, не советую юзать С++/CLI, это редкостный уродец с кошмарным синтаксисом. Поэтому напишу вариант на C# (модерам просьба не бить сильно ногами за оффтоп).
Рабочий вариант:


Код:
using namespace System;

class Program
{
static void main()
{
Random rand = new Random(12345);
double a = obj.NextDouble();
Console.WriteLine(a);
return 0;
}
}
Автор: Lyrik
Дата сообщения: 02.10.2009 16:03
shadow_user777
ну так у вас все есть уже или я не понял того, чего вы хотите
Автор: shadow user777
Дата сообщения: 02.10.2009 22:05
Lyrik
мне не нужно готовое. К сожалению оно не удовлетворяет моим нуждам
Мне нужна консольная утилита при запуске выискивающая хайдтулзы, убивающая их и завершающая свою работу.
Как уже упоминал выше познания мои в С равны 0, поэтому и прошу помощи
Я дал ссылки на материалы дабы облегчить труд того кто это сможет сделать.
Автор: Infinite Retrieval
Дата сообщения: 03.10.2009 22:26
Ещё маленький вопрос

Код:
int compare(my_str &s1, my_str &s2)
{
    if( (s1.lenth_active)&&(s2.lenth_active) )
        return s1.lenth==s2.lenth ? 0 : s1.lenth>s2.lenth ? 1 : -1 ;
    else
    {
        s1.get_lenth();
        s2.get_lenth();
        compare(s1, s2);
    }
}
Автор: Abs62
Дата сообщения: 03.10.2009 22:59
Infinite Retrieval
Потому, что внутри оператора ?: expression может использоваться, а statement - нет. "return" - statement.
Хотя на русский и то, и другое частенько переводится одним словом "оператор".


Цитата:
подобный вызов

Код: getline(cin, str, '\n');

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193

Предыдущая тема: не знаю как назвать тему :-)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.