Сумасшедшая std::map.
От: vbez  
Дата: 14.03.03 17:46
Оценка:
Есть такой код:

DLL
typedef std::map<int, int> MadMap;
class TEST_EXT_CLASS MyClass  
{
public:
    void Check(MadMap& myMap);
};

void MyClass::Check(MadMap& myMap)
{
   myMap[1] = 10;
   myMap[3] = 30;
   myMap[5] = 50;
}


Клиент

MadMap myMap;
myMap[1] = 0;
myMap[3] = 0;
myMap[5] = 0;

MyClass cls;
cls.Check(myMap);


Когда управление переходит в MyClass::Check, то выполняется только первая строчка.
На myMap[3] = 30; — Access Violation.

Я что-то неправильно делаю???
Если все правильно, то можно ли это обойти честными способами — без правки stl-эвских файлов.

Статью "Заметка о некоторых особенностях использования STL в DLL".
Роэтому ссылаться на нее не стоит.
Меня интересует четкий ответ — да||нет и как.

Владимир Безуглый.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.