Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как из нескольких картинок разного качества зделать одну хорошего https://www.cyberforum.ru/ cpp/ thread351437.html
Вот такая проблема из названия выходит. Есть картинка в качестве 320x320 170x128 56x42 как из них сделать одну хорошую. Может кто программу какую знает, или написать может. ПОМОГИТЕ ПЛИИЗ!...
C++ Написание конвертера
В общем на курсовой попалась тема конвертер следующих форматов: BMP -> AVI BMP -> EMF BMP -> ICO BMP -> JPG BMP -> RTF ICO -> BMP TIF -> PDF При чем, естественно, готовые надстройки (типа...
C++ Программирование как профессия
Здравствуйте форумчане, я столкнулся с проблемой, что не знаю куда двигаться дальше. По порядку расскажу что знаю и что хочу узнать. Прочитал достаточно весомые книги по с++ разных авторов, изучаю...
C++ Прочитайте пожалуйста Всем привет На многих форумах видел различные читы, даже сам один пытался создать! Во многих читах есть слишком много палевных функций или наоборот чего то не хватает! У меня просьба: Научите... https://www.cyberforum.ru/ cpp/ thread350522.html
C++ функции с переменным количеством параметров https://www.cyberforum.ru/ cpp/ thread350166.html
для некоторого класса необходимо чтобы его конструктор принимал переменное количество параметров. как это делается - понятно. я использую va_list и т.д. из varargs.h сложность возникла в том что с...
C++ Работа с const
Объясните пожалуйста разницу между вызовами двух функций: int func(const char *name) и int func(char *name) Я плохо понимаю - что дает этот спецификатор const? Что может произойти если...
Как получить картинку с видео источника C++
Люди пожалуйста подскажите... Как получить картинку с видео источника, меня интересует как на С++ visual studio получить входящий поток с веб камеры...(в крайнем случае на билдере) Я пытался на...
C++ ffmpeg Всем привет, помогите начинающему разобраться с такой проблемой: ffmpeg + sdl - очень долго приложение сидит в функции av_find_stream_info (от 2 до 10 секунд). В чем может быть проблема? Заранее... https://www.cyberforum.ru/ cpp/ thread348640.html
C++ Linker error https://www.cyberforum.ru/ cpp/ thread347929.html
При попытке скомпилить программу выдаёт ошибки: undefined reference to `InternetOpenA@20' undefined reference to `InternetConnectA@32' undefined reference to `HttpSendRequestA@20' undefined...
C++ движок или игра на C++ Здравствуйте, интерестно узнать ваше мнение..что будем лучше быстрее: 1. Создать большую игру на C++ Или 2. Написать прогу т.е. движок для содания игр на C++ ... https://www.cyberforum.ru/ cpp/ thread347709.html
C++ поиск Handle окна, зная ControlId окна https://www.cyberforum.ru/ cpp/ thread346564.html
вопрос по сабжу
C++ Чтение секторов жёсткого в DOS Добрый вечер! Проблема заключается именно в том, что программа должна работать под DOS, и ей не важно что есть на диске и какая там операционная система, необходимо просто прочитать сектора. Много... https://www.cyberforum.ru/ cpp/ thread346389.html
0 / 0 / 0
Регистрация: 14.09.2011
Сообщений: 4
0

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

14.09.2011, 19:51. Просмотров 613. Ответов 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
................................................
}
}


Извините что запачкал форум темой в которой задал вопрос и сам на него ответил, надеюсь что может кому эта информация поможет

Вернуться к обсуждению:
Помогите с ошибкой. Ассемблерные блоки
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.09.2011, 19:51
Готовые ответы и решения:

Помогите с ошибкой.
Почему на экран не выводится enterSequence ? Просто программа прекращается на вводе n . #include...

Помогите с ошибкой
Здравствуйте,При написании кода вышла ошибка,в чем проблема? edit15.Text := CheckListBox1.Checek;...

Помогите с ошибкой
Вообще в проге при нажатии ВЛЕВО и ВПРАВО жёлтая картинка должна плавно двигаться, но почему то он...

Помогите с ошибкой
Кто знает, что с этим можно сделать: Project Timer.exe raised exeption class EInvalidOp with...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.