Здравствуйте, Игорь Вартанов, Вы писали:
ИВ>Вот у меня вдруг возник сумасшедший вопрос — а имена модулей у dll случайно не одинаковые?
Случайно разные.
ИВ>Что-то я не пойму — о какой "зависимости друг от друга" идет речь, если вторая dll грузится явно? Или она импортирует экспорты первой?
Да, именно так.
ИВ>И еще, давно это было, так что извини за глупый вопрос... Какой еще TLS на Win32s? Там же нету поддержки тредов, afair...
Вот что написано в Win32s Reference:
Thread Local Storage is supported on Win32s even though threads are
not. TLS is useful in Win32 DLLs on Win32s to create DLL instance
data. By default, all global variables in a DLL on Windows 3.1 are
shared by all processes that call the DLL. This can be inconvenient
when the DLL must maintain global information that applies only to a
particular process calling the DLL. The TLS implementation in Win32s
creates system-wide index such that a unique TLS index is available
for each process which links to a DLL.
ИВ>Да, было бы полезно глянуть.
Речь идет о шведской Open Source библиотеке Snack Sound Toolkit:
http://www.speech.kth.se/snack/index.html
Для компиляции потребуется Tcl/Tk 8.0p2:
http://tcl.sourceforge.net
(
http://sourceforge.net/project/showfiles.php?group_id=10894)
Мне правда пришлось сделать некоторые косметические правки, чтобы
пересобрать все это заново с помощью MSVC++ 6.0 Enterprise, иначе
не работало. А еще я набросал простенький тестик на BC++ 4.52 для
проверки результатов загрузки обеих DLL.
Выложил сюда:
http://sr1.mytempdir.com/87370
ИВ>И еще более полезно было бы найти Win32s систему, чтобы это запустить в реальном окружениию. Но это уже не к тебе вопрос...
Win32s 1.30c до недавнего времени лежал здесь:
ftp.microsoft.com/softlib/MSLFILES/PW1118.EXE
А сам Windows 3.11 for Workgroups (English) здесь:
http://torrentreactor.net/view.php?id=5077836
Хотя с torrent'ами я дела не имел, поэтому поручиться не смогу.