У меня есть коммерческий продукт, представляющий собой DLL (собственный 32-разрядный код), и теперь пришло время создать его 64-разрядную версию. Таким образом, при установке в 64-битной Windows 32-битная версия помещается в Windows\SysWOW64, а 64-битная версия — в... Windows\System32! (Здесь я прикусываю язык...) Или DLL (и) могут быть установлены вместе с клиентским приложением.
Как мне назвать 64-битную DLL?
То же имя, что и 32-битный: два файла, которые делают одно и то же, имеют одно и то же имя, но совершенно невзаимозаменяемы. Разве это не путь к путанице и проблемам с поддержкой?
Различные имена (например, product.dll и product64.dll): теперь клиентские приложения должны знать, работают ли они в 32-разрядной или 64-разрядной версии, чтобы ссылаться на мою DLL, и есть языки, для которых это неизвестно до запуска. время - .NET является лишь одним из примеров. И теперь все статически скомпилированные клиенты должны обусловить объявления импорта: IF target=WIN64 THEN import Blah from "product64.dll" ELSE import Blah from "product.dll" ENDIF
Продукт содержит огромное количество кода C и большой кусок C++ — перенос его на C# невозможен.
Совет? Предложения?