On 05/28/2012 07:28 PM, AlexGin wrote:
> Допустим, что я сделал по твоему рецепту, то есть написал этот код в таком виде:
> Здесь я предполагаю, что мы работаем даже не в головном *.exe модуле, а в
> какой-либо другой (не Telecontrol.dll) библиотеке:
Это всё равно. AfxSetResourceHandle надо ставить всегда.
> Что будет дальше, когда мы выйдем из данного участка?
> Хендл ресурсов останется на бибилитотеке Telecontrol.dll, вместо перехода на
> текущую библиотеку.
Что такое "текущая библиотека" ?
> Наличие хендла на *старой библиотеке* (которая Telecontrol.dll) обеспечит нам
> дальнейшие грабли
Нет, если весь код будет правильным, будет соответствовать этим правилам.
Тут главное понять, что AfxSetResourceHandle надо ставить всегда,
и надеятся на какую-то "текущую библиотеку" бессмысленно.
Если это правило соблюдается, то всё будет работать всегда.
Другая модель поведения с "текущим активным источником ресурсов" тоже
конечно же допустима, только возни с ней больше, а толку мало.
AfxSetResourceHandle() собственно и разрабатывался с заточкой под
модель с "текущим активным источником ресурсов".
Ну и если у тебя одно приложение и одна .dll — может оно и хорошо.
Если модулей несколько сотен, и любой чих может вызвать смену "текущего
ресурса" -- дело другое.
Posted via RSDN NNTP Server 2.1 beta