В настоящее время я пытаюсь интегрировать DLL (FooEmulation
) в существующий проект.Сохранение отдельных экземпляров статической памяти DLL
DLL предполагает, что он будет использоваться только для эмуляции одного Foo
за один раз и в результате использует много статических глобальных переменных.
Однако, я хочу иметь возможность управлять тысячами Foo
экземпляров сразу.
У меня есть источник исходной DLL, поэтому я могу преобразовать все статические глобальные значения в параметры, которые будут переданы (будь то напрямую или через дескриптор), но DLL поддерживается отдельно, и мне бы хотелось, чтобы избежать наложения/слияния, если это вообще возможно.
Один из методов, который я нашел, заключался в загрузке нескольких динамически сгенерированных копий DLL, но это слишком ресурсоемкое для необходимого мне масштаба. Я также не могу позволить себе создать процесс или нить для каждого Foo
.
Возможно ли сохранить несколько копий статической памяти DLL и восстановить ее за использование библиотеки DLL?
Как его найти? Можно ли даже дотронуться до него?
fwiw, это на Windows. – mskfisher