> Стоило только в настройках проекта поменять Use MFC in a > static library на Use MFC in a Shared DLL. > Хотя не понятно, что это за дескременация статических > библиотек...
dlia static lib: Potomu chto heap v kazdoii dl(exe)l svoi i kogda ty allociroval v exe(dll) a dealociruesh v drugoi dll, to pointer ne mozhet byt` dealocirovan v drugoi heap, i vse padaet.
a kogda v mfc dll to memory allociruetsia na heape mfc.dll (ili c-runtime dll) i dealociruetsia tam zhe i vse ok.
I uzhe pro eto pisal i dazhe primer vylozhil.
Итак, в главном thread завожу объект потока. Запускаю поток. В Run потока есть локальная переменая сокета. При вызове Create для сокета все падает.
Что бы это значало ?
P.S. В debug все работает. В release - нет.
Все исправилось17.10.01 11:27 Автор: PS <PS> Статус: Elderman
Стоило только в настройках проекта поменять Use MFC in a static library на Use MFC in a Shared DLL.
Хотя не понятно, что это за дескременация статических библиотек...
> Стоило только в настройках проекта поменять Use MFC in a > static library на Use MFC in a Shared DLL. > Хотя не понятно, что это за дескременация статических > библиотек...
dlia static lib: Potomu chto heap v kazdoii dl(exe)l svoi i kogda ty allociroval v exe(dll) a dealociruesh v drugoi dll, to pointer ne mozhet byt` dealocirovan v drugoi heap, i vse padaet.
a kogda v mfc dll to memory allociruetsia na heape mfc.dll (ili c-runtime dll) i dealociruetsia tam zhe i vse ok.
I uzhe pro eto pisal i dazhe primer vylozhil.
Либо я что то не понимаю, либо одно из двух18.10.01 10:18 Автор: PS <PS> Статус: Elderman
> dlia static lib: Potomu chto heap v kazdoii dl(exe)l svoi i > kogda ty allociroval v exe(dll) a dealociruesh v drugoi > dll, to pointer ne mozhet byt` dealocirovan v drugoi heap, > i vse padaet. > a kogda v mfc dll to memory allociruetsia na heape mfc.dll > (ili c-runtime dll) i dealociruetsia tam zhe i vse ok. > I uzhe pro eto pisal i dazhe primer vylozhil.
Статические библиотеки присоеденяются полностью к твоему exe'шнику, увеличивая его на свой размер. Никаких DLL при этом вызыватся не должно. ВЕСЬ код находится в твоем процессе.
Во вторых никаких new я не делал. Все переменые были статическими, поэтому о хипе говорить нельзя.
По этим двум причинам я не могу принять твое объяснение.
Tvoi analis ochen vpechetliaet (v terminah zaputalsia, sam sebe protivorechish). I tebia verit ne zastavliau. I obiasnil prichinu, esli hochesh oprovergnut` to snachala prover` na praktike, a potom vse somnenia otpadut, Enshtein ty nash. :-)
> > dlia static lib: Potomu chto heap v kazdoii dl(exe)l > svoi i > > kogda ty allociroval v exe(dll) a dealociruesh v > drugoi > > dll, to pointer ne mozhet byt` dealocirovan v drugoi > heap, > > i vse padaet. > > a kogda v mfc dll to memory allociruetsia na heape > mfc.dll > > (ili c-runtime dll) i dealociruetsia tam zhe i vse > ok. > > I uzhe pro eto pisal i dazhe primer vylozhil. > > Статические библиотеки присоеденяются полностью к твоему > exe'шнику, увеличивая его на свой размер. Никаких DLL при > этом вызыватся не должно. ВЕСЬ код находится в твоем > процессе. > Во вторых никаких new я не делал. Все переменые были > статическими, поэтому о хипе говорить нельзя. > По этим двум причинам я не могу принять твое объяснение.