Тема: Binary.string
Показать сообщение отдельно
Старый 31.08.2009, 14:04   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
У вас типичный случай с переполнением стека.

Цитата:
Сообщение от John_11 Посмотреть сообщение
X++:
        bin1 = new Binary(8);

        st1.string(0,"Тестовая строка 1");
        st2.string(0,"Тестовая строка 2");

        bin1.binary(0,st1);
        bin1.binary(4,st2);
Вы выделяете под bin память размером 8 байт, а затем заталкиваете в эту область текст, длиной 17 байт. Причем во второй раз еще и со смещением в 4 байта. Вот и получаете странные значения в других переменных, размещенных в стеке.

А если измените порядок переменных в стеке
X++:
static void BinSTR(Args _args)
{
    Binary  st1;
    Binary  st2;
    Binary  bin1;
то скорее всего, аксапта просто вылетать начнет.

См. msdn: http://msdn.microsoft.com/en-us/library/aa500848.aspx
__________________
полезное на axForum, github, vk, coub.