Форум программистов, компьютерный форум CyberForum.ru

Помогите с ошибкой. Ассемблерные блоки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как из нескольких картинок разного качества зделать одну хорошего http://www.cyberforum.ru/cpp/thread351437.html
Вот такая проблема из названия выходит. Есть картинка в качестве 320x320 170x128 56x42 как из них сделать одну хорошую. Может кто программу какую знает, или написать может. ПОМОГИТЕ ПЛИИЗ! ОЧЕНЬ НУЖНЫЙ ДОКУМЕНТ В НЕЙ!
C++ Написание конвертера В общем на курсовой попалась тема конвертер следующих форматов: BMP -> AVI BMP -> EMF BMP -> ICO BMP -> JPG BMP -> RTF ICO -> BMP TIF -> PDF При чем, естественно, готовые надстройки (типа там Graphics.hpp) запрещено использовать. http://www.cyberforum.ru/cpp/thread350916.html
C++ Программирование как профессия
Здравствуйте форумчане, я столкнулся с проблемой, что не знаю куда двигаться дальше. По порядку расскажу что знаю и что хочу узнать. Прочитал достаточно весомые книги по с++ разных авторов, изучаю STL и Qt. Хотелось бы узнать, что изучать дальше, язык безграничен и фишек в нем много, но меня интересуют конкретно стадии обучения нужные для становления программиста как работника. Видел кучу...
C++ Прочитайте пожалуйста
Всем привет На многих форумах видел различные читы, даже сам один пытался создать! Во многих читах есть слишком много палевных функций или наоборот чего то не хватает! У меня просьба: Научите меня пожалуйста создавать эти читы? Имею доступ к приватным разделам форума и что бы не не сидеть тупо онлайн хочу что то создать своё
C++ функции с переменным количеством параметров http://www.cyberforum.ru/cpp/thread350166.html
для некоторого класса необходимо чтобы его конструктор принимал переменное количество параметров. как это делается - понятно. я использую va_list и т.д. из varargs.h сложность возникла в том что с ее помощью нельзя узнать сколько параметров было передано сейчас я делаю так AddToList(frst); va_list ap; va_start(ap,frst); while (AddToList(va_arg(ap,int)) > 0); va_end(ap);
C++ Как получить картинку с видео источника Люди пожалуйста подскажите... Как получить картинку с видео источника, меня интересует как на С++ visual studio получить входящий поток с веб камеры...(в крайнем случае на билдере) Я пытался на билдере при помощи VisionLab но у меня возникли проблемы с добавлением компонента... подробнее

Показать сообщение отдельно
ga-mb-it
0 / 0 / 0
Регистрация: 14.09.2011
Сообщений: 4

Помогите с ошибкой. Ассемблерные блоки - C++

14.09.2011, 19:51. Просмотров 423. Ответов 0
Метки (Все метки)

Помогите пожалуйста разобраться с ошибкой

Есть header файл с описанием объекта, привожу часть кода
class CBrain {
public:
CBrain( void );
virtual ~CBrain( void );
void SetMemDepth( UINT nMem1, UINT nMem2, UINT nMem3 );
........................................
protected:
........................................
UINT nMemDepth1; // Глубина памяти Mem1 нейрона.
UINT nMemDepth2; // Глубина памяти Mem2 нейрона.
UINT nMemDepth3; // Глубина памяти Mem3 нейрона.

UINT nMemMask1; // Маска памяти Mem1 нейрона.
UINT nMemMask2; // Маска памяти Mem2 нейрона.
UINT nMemMask3; // Маска памяти Mem3 нейрона.
};


И срр файл с описанием методов вышеописанного обекта

void CBrain::SetMemDepth( UINT nMem1, UINT nMem2, UINT nMem3 ) {
__asm {
// Блок обработки данных для Mem1.
mov ebx, this
bsr ecx, nMem1
add ecx, 2
and ecx, 0xfe
mov [ebx].nMemDepth1, ecx
mov [ebx].nMemMask1, ecx

mov eax, 0xffffffff
shl eax, cl
not eax

mov dword ptr [ebx].nMemMask1, eax
........................................
}
}


В строке выделенным красным цветом компилятор сообщает об ошибке:
(60) : error C2410: 'nMemMask1' : ambiguous member name in 'first operand'
Никак не могу понять в чем там проблема ведь в переменную nMemDepth1 все благополучно сохраняется а в nMemMask1 не могу сохранить результат и описаны обе эти переменные одинаково.

П.С. Когда строку с ошибкой комментирую то проект благополучно компилируется без ошибок, а с этой строкой ни как

Добавлено через 21 минуту
Какая то чудесия получается, если я переменную nMemMask1 переименовываю например в nMemMask1A или nMemMask, то все компилируется без ошибок значит проблема в имени. Если кто знает отпишитесь пожалуйста, почему так получается?

Добавлено через 20 минут
Все нашел ошибку у меня была объявлена статическая переменная в другом объекте с тем же именем, может кому пригодится в данной ситуации обращение на ассемблере к переменным объекта надо было строить с указанием имени объекта

Вот правильный вариант СРР файла описанного выше
void CBrain::SetMemDepth( UINT nMem1, UINT nMem2, UINT nMem3 ) {
__asm {
mov ebx, this

// Блок обработки данных для Mem1.
bsr ecx, nMem1
add ecx, 2
and ecx, 0xfe

mov dword ptr [ebx]this.nMemDepth1, ecx

mov eax, 0xffffffff
shl eax, cl
not eax

mov dword ptr [ebx]this.nMemMask1, eax
................................................
}
}


Извините что запачкал форум темой в которой задал вопрос и сам на него ответил, надеюсь что может кому эта информация поможет
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru