У меня есть dll, который я загружаю в свою программу, которая читает и записывает свои настройки в реестр (hkcu). Моя программа изменяет эти настройки до загрузки библиотеки DLL, поэтому она использует настройки, которые моя программа хочет использовать, и это прекрасно работает.
К сожалению, мне нужно запустить несколько экземпляров моей программы с различными настройками для DLL. Теперь подход, который я использовал до сих пор, больше не работает надежно, потому что один экземпляр программы может перезаписать настройки, которые другой экземпляр только что написал, прежде чем DLL сможет их прочитать.
У меня нет источника DLL, о котором идет речь, и я не могу попросить программиста, написавшего его, изменить его.
Одна из моих идей заключалась в том, чтобы подключить функции доступа к реестру и перенаправить их в другую ветку реестра, которая специфична для экземпляра моей программы (например, использовать идентификатор процесса как часть пути). Я думаю, что это должно сработать, но, возможно, у вас есть другой / более элегантный.
В случае, если это имеет значение: я использую Delphi 2007 для своей программы, dll, вероятно, написан на C или C ++.