Re[12]: [linkerr] DllMain already defined
От: MasterZiv СССР  
Дата: 28.05.12 16:29
Оценка:
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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.