сделал, сори за беспокойства
» Вопросы по программированию на C/С++
C Новым годом!
Есть код:
Код: typedef struct {
CSize size;
int bpp, freq;
DWORD dmDisplayFlags;
} dispmode;
typedef struct {
bool checked;
float fr_from;
float fr_to;
dispmode dm;
} fratemode;
typedef struct {
CString DeviceID;
bool bEnabled;
CAtlArray<fratemode> fratemodes;
bool bApplyDefault;
} AChFR;
Есть код:
Код: typedef struct {
CSize size;
int bpp, freq;
DWORD dmDisplayFlags;
} dispmode;
typedef struct {
bool checked;
float fr_from;
float fr_to;
dispmode dm;
} fratemode;
typedef struct {
CString DeviceID;
bool bEnabled;
CAtlArray<fratemode> fratemodes;
bool bApplyDefault;
} AChFR;
V0lt
Какая студия, какие хидера?
вот с етими компилится (VS2008)
#include <atltypes.h>
#include <atlcoll.h>
#include <atlstr.h>
Какая студия, какие хидера?
вот с етими компилится (VS2008)
#include <atltypes.h>
#include <atlcoll.h>
#include <atlstr.h>
ValidolX
VS 2010
Цитата:
не помогло
Может просто типы наподобие CAtlArray<> не могут быть членами структуры?
VS 2010
Цитата:
#include <atltypes.h>
#include <atlcoll.h>
#include <atlstr.h>
не помогло
Может просто типы наподобие CAtlArray<> не могут быть членами структуры?
V0lt
Компилятор говорит, что при присвоении вы пытались получить доступ к приватному члену.
В приведенном куске кода никакого присвоения нет, о чем говорить тогда?
Компилятор говорит, что при присвоении вы пытались получить доступ к приватному члену.
В приведенном куске кода никакого присвоения нет, о чем говорить тогда?
kotlomoy
Цитата:
А я о чем. Компилятор выдает единственную ошибку и ссылается на объявление структуры AChFR. Других ошибок нет, типа все нормально. Как такое трактовать?
Цитата:
В приведенном куске кода никакого присвоения нет, о чем говорить тогда?
А я о чем. Компилятор выдает единственную ошибку и ссылается на объявление структуры AChFR. Других ошибок нет, типа все нормально. Как такое трактовать?
Добрый день. Скажите, можно ли как-то сделать, чтобы записи занимали всю ширину TabControl'а?
Например, есть у нас TabControl с тремя записями. Ширина TabControl'а равна 300 пикселей. Чтобы записи занимали весь таб, ставим TabWidth равным 99. 99*3=297. Оставшиеся три пойдут на границы между табами. Только вручную каждый раз меняя можно добиться того, что я хочу?
Например, есть у нас TabControl с тремя записями. Ширина TabControl'а равна 300 пикселей. Чтобы записи занимали весь таб, ставим TabWidth равным 99. 99*3=297. Оставшиеся три пойдут на границы между табами. Только вручную каждый раз меняя можно добиться того, что я хочу?
TabControl с тремя вкладками
чета не понял ни фига что ты хочешь, лучше бы нарисовал
чета не понял ни фига что ты хочешь, лучше бы нарисовал
V0lt
давайте уж тогда весь проект, что за чудеса творятся
давайте уж тогда весь проект, что за чудеса творятся
ValidolX
Проект большой
Сейчас там статический массив. А я переделываю в динамический. Пока поменял лишь имена и объявления и большую часть еще не трогал. В итоге при компиляции получаю только одну ошибку при объявлении структуры AChFR. При этом по поводу извращений типа
Код: AChFR AutoChangeFullscrRes;
if ( pApp->GetProfileBinary(IDS_R_SETTINGS, IDS_RS_FULLSCREENRES, &ptr, &len) ) {
if ( len == sizeof(AChFR) ) {
memcpy( &AutoChangeFullscrRes, ptr, sizeof(AChFR) );
}...
Проект большой
Сейчас там статический массив. А я переделываю в динамический. Пока поменял лишь имена и объявления и большую часть еще не трогал. В итоге при компиляции получаю только одну ошибку при объявлении структуры AChFR. При этом по поводу извращений типа
Код: AChFR AutoChangeFullscrRes;
if ( pApp->GetProfileBinary(IDS_R_SETTINGS, IDS_RS_FULLSCREENRES, &ptr, &len) ) {
if ( len == sizeof(AChFR) ) {
memcpy( &AutoChangeFullscrRes, ptr, sizeof(AChFR) );
}...
V0lt
мда, крутой прожект, я не собрал его
вобщем в 2010 тоже все работает (в отдельном, тестовом проекте), видимо какаято настройка в проекте мешает....
надо искать и анализировать
мда, крутой прожект, я не собрал его
вобщем в 2010 тоже все работает (в отдельном, тестовом проекте), видимо какаято настройка в проекте мешает....
надо искать и анализировать
Любопытный вопрос. Стандартные (встроенные типы) в С++ ни как не рекгируют при арифметических операциях на переполнение (разрядной сетки), т.е. они выполняются "как бы в кольце". Какие есть библиотеки типов, в которых это поведение отличается, например, выбрасывается исключение Overflow, а так же поддерживается работа с +Inf, -Ind, NaN
??
??
BagaBaga
Унаследовалось для совместимости с Си.
Вот это вам не подойдет: SafeInt?
Вообще свой написать не сложно))
Унаследовалось для совместимости с Си.
Вот это вам не подойдет: SafeInt?
Вообще свой написать не сложно))
Хмм, написать вроде и можно, но это только до тех пор, пока не потребуется "что-то" чуть больше, например, double. А заниматься велосипедостроительством есть желание только убедившись, что других путей нет...
BagaBaga
Можно использовать заведомо больший тип и не иметь проблем с переполнением (типа все ваши вычисления вокруг сотни тысяч, берете тип int).
Можно использовать заведомо больший тип и не иметь проблем с переполнением (типа все ваши вычисления вокруг сотни тысяч, берете тип int).
Есть библиотеки с произвольной точностью представления чисел. Вот далеко не полный перечень: boost, LEDA, GMP, CLN. В LEDA при возникновении проблем с точностью происходит переключение на более тяжеловесный тип данных потому что геометрические алгоритмы очень критичны к точности чисел. Как это реализовано, можно, наверное, подсмотреть в открытом для академических целей коде этой библиотеки.
Спсибо, Garrett & karakurt2. Надеюсь, кто ещё что знает - кинет ссылки\названия.
И к самим постам:
не всегда возможно вырать заведомо больший тип данных. Просто, хотя результат и ограничен, но при промежуточных вычислениях может произойти переполнение разрядной сетки (вероятно, это приведёт к пониманию необходимости смены вычислительного метода или хотя бы порядка вычислений). Лучше, уж пусть произойдёт останов, чем неправильный результат будет использоваться далее...
Про библиотеки с произвольной точностью. Штуки хорошие, но не для моих задач. Потому что достаточно медленно, да и не требуется. Точность коэффициентов реакций известна, и считать с большим чем в два раза запасом "точности" нет ни какого смысла - просто потеря времени.
И к самим постам:
не всегда возможно вырать заведомо больший тип данных. Просто, хотя результат и ограничен, но при промежуточных вычислениях может произойти переполнение разрядной сетки (вероятно, это приведёт к пониманию необходимости смены вычислительного метода или хотя бы порядка вычислений). Лучше, уж пусть произойдёт останов, чем неправильный результат будет использоваться далее...
Про библиотеки с произвольной точностью. Штуки хорошие, но не для моих задач. Потому что достаточно медленно, да и не требуется. Точность коэффициентов реакций известна, и считать с большим чем в два раза запасом "точности" нет ни какого смысла - просто потеря времени.
в сопроцессоре и процессоре (mmx sse) поведение в случае переполнения и нуля настраиваются флагами. любая библиотека каким то образом их настраивает и по хорошему это должно быть отмечено в ее описании, а если не написина - значит по умолчанию наверно
BagaBaga
Вы хотите класс для работы с неограниченной(ограниченной памятью) размерностью целочисленного типа?
Вы хотите класс для работы с неограниченной(ограниченной памятью) размерностью целочисленного типа?
Добрый день всем. Есть проблема
Из StringGreed в BitMap
Суть программы в следующем. Считываю из файла .bmp изображение InputImage в градациях серого. Заношу значения яркости в StringGreed1. Прделываю некие математические операции над элементами StringGreed1 и результат заношу в StringGreed2. Пока все в порядке. Теперь нужно это новое изображение OutputImage отрисовать -компонент (TImage) и сохранить в файл. Создаю указатель на TBitmap нужного размера и т.д. Вот вывод на экран
Код:
for (int y = 1; y < N+1; y++)
for (int x = 1; x < M+1; x++)
OutputImage->Canvas->Pixels[x-1][y-1]=StrToInt(StringGrid2->Cells[x][y]);
Из StringGreed в BitMap
Суть программы в следующем. Считываю из файла .bmp изображение InputImage в градациях серого. Заношу значения яркости в StringGreed1. Прделываю некие математические операции над элементами StringGreed1 и результат заношу в StringGreed2. Пока все в порядке. Теперь нужно это новое изображение OutputImage отрисовать -компонент (TImage) и сохранить в файл. Создаю указатель на TBitmap нужного размера и т.д. Вот вывод на экран
Код:
for (int y = 1; y < N+1; y++)
for (int x = 1; x < M+1; x++)
OutputImage->Canvas->Pixels[x-1][y-1]=StrToInt(StringGrid2->Cells[x][y]);
OlehAlex
TColor
Отчетливо видны 4 байта.
Приведите побольше кода, который манипулирует с StringGrid2.
TColor
Отчетливо видны 4 байта.
Приведите побольше кода, который манипулирует с StringGrid2.
Цитата:
Отчетливо видны 4 байта.
Приведите побольше кода, который манипулирует с StringGrid2.
да то ясно, что 4 байта )) вопрос, как из стрингрид привести к ансигнед чар - уж не знаЮ. побитово как-то сдвинуть-но неужели нет более простого метода?
вот побольше кода
Код:
...
try
{
h=StrToInt(StringGrid3->Cells[i][j]);
}
catch (EConvertError &e)
{
ShowMessage("Необходимо ввести параметры");
return;
}
t=StrToInt(StringGrid1->Cells[x-1+i][y-1+j]);
S+=t*h;
} //floor((float)S/k+0.5); округление до целого
// возможно исключение — деление на ноль
try
{
StringGrid2->Cells[x][y] = (unsigned char)(floor((float)S/k+0.5));
}
catch (EZeroDivide &e)
{
ShowMessage("Знаменатель нормирующего коэффициента не должен быть равен нулю");
LabeledEdit2->SetFocus(); // курсор а поле знаменателя коэффициента
return;
}
...
cp58,
я хочу реализацию стандарта IEEE-754 для хотя бы real (32 bit float), в идеале также double (64 bit float) и extended (80 bit float) для основных арифметических операций (+-/*), и очень бы хотелось для основных (степень, корень) и основных тригонометрических (хотя бы sin и cos) функций.
я хочу реализацию стандарта IEEE-754 для хотя бы real (32 bit float), в идеале также double (64 bit float) и extended (80 bit float) для основных арифметических операций (+-/*), и очень бы хотелось для основных (степень, корень) и основных тригонометрических (хотя бы sin и cos) функций.
BagaBaga
IEEE 754 - стандарт двоичной арифметики с плавающей точкой
http://www.softelectro.ru/ieee754.html
IEEE 754 - стандарт двоичной арифметики с плавающей точкой
http://www.softelectro.ru/ieee754.html
BagaBaga
посмотри cephes из netlib
посмотри cephes из netlib
Решение
Все, разобрался, как и говрил, делается серая палитра и используется для нового битмапа
Все, разобрался, как и говрил, делается серая палитра и используется для нового битмапа
Вcем привет,такая проблема,вот скрин
http://radikal.ru/F/s018.radikal.ru/i527/1201/31/4116e6c52e6b.png.html
Сиситема win7 максимальная 32bit,проц AMD,мамка тоже на AMD чипсете(хотя какая разница?),4гб операты,видео 275гтх,что еще...?
Подскажите,почему не инсталится???
http://radikal.ru/F/s018.radikal.ru/i527/1201/31/4116e6c52e6b.png.html
Сиситема win7 максимальная 32bit,проц AMD,мамка тоже на AMD чипсете(хотя какая разница?),4гб операты,видео 275гтх,что еще...?
Подскажите,почему не инсталится???
Hanjin
тебе в какую-то другую тему
http://forum.ru-board.com/topic.cgi?forum=5&topic=0570&glp
http://forum.ru-board.com/topic.cgi?forum=5&topic=29230&glp
тебе в какую-то другую тему
http://forum.ru-board.com/topic.cgi?forum=5&topic=0570&glp
http://forum.ru-board.com/topic.cgi?forum=5&topic=29230&glp
Hanjin
Может лучше использовать официальный образ от microsoft?
Может лучше использовать официальный образ от microsoft?
Код: CString str = _T("300, 23.976");
unsigned int frame;
wchar_t ch[1];
float fps;
int result = _stscanf_s(str, _T("%u%c%f"), &frame, ch, 1, &fps);
(result == 3 && ch[0] == ',') {
m_time = (int)(frame/fps+0.5);
}
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
Предыдущая тема: не знаю как назвать тему :-)
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.