Могут несколько версий того же (Повышение), DLL сосуществует в том же процессе?

document.querySelectorAll() выбирает все элементы с заданным именем класса и сохраняет их в массивоподобном объекте. Можно циклически перемещаться по объектам вместо того, чтобы обращаться к ним вручную.

var elements = document.querySelectorAll('.className');
for(var i = 0; i < elements.length; i++){
    var str = elements[i].innerHTML;
    elements[i].innerHTML = str.replace(":smile:", "<i class='em em-smile'></i>");
}

Вы также можете сделать то же самое, используя document.getElementsByClassName()

var elements = document.getElementsByClassName('.className');
for(var i = 0; i < elements.length; i++){
    // Same like above...
}
8
задан 27 March 2009 в 11:19
поделиться

3 ответа

До использования DLLs для различных версий не должно быть никакой проблемы. По крайней мере, не в Windows.

Это верно, если SDK использует повышение внутренне. Если SDK использует конструкции повышения в своем интерфейсе, например: это имеет функцию, которая возвращает повышение:: дополнительный, затем имея несколько версий может вызвать проблемы. Это могло все еще хорошо работать, зависящее от изменений между версиями, но это определенно будет риском. Я не знаю ни о каком хорошем решении в этом случае. Это также верно при включении заголовочного файла SDK, который включает заголовочный файл повышения.

2
ответ дан 6 December 2019 в 00:08
поделиться

Это - большая проблема. Сделайте поиск на аде DLL.

В основном DLL (или совместно использованный освобождает в Linux) загружается, но не все имена разрешены во время загрузки. То, что происходит, является отложенными вычислениями, таким образом, имена оценены на первом использовании. Проблема состоит в том, что, если 2 dll имеют то же имя затем местоположение, где имя разрешено к, зависит от, какой приказывает, чтобы DLL искался в (который зависит от порядка загрузки).

Если Вы статически свяжетесь затем, то у Вас не будет проблем с вызовами метода, поскольку Ваш будет все разрешен во время компиляции, и третье лицо будет разрешено во времени выполнения от DLL. Но что относительно структур, которые создаются повышением версии 1. Если Вы затем передаете их сторонней библиотеке, которая затем передает его повышению версии-x. Структуры размечаются таким же образом?

Это - очень хитрая область и когда проблемы происходят очень трудно для отлаживания. Поэтому попытайтесь использовать ту же версию.

2
ответ дан 6 December 2019 в 00:08
поделиться

Если Вы пишете функцию foo, и экспортируйте его из F.dll и другой функции foo экспортируемый из G.dll, Вы ожидали бы проблемы?

Когда AF.exe связан, компоновщику говорят: поместите некоторый код там, который загружает адрес функции foo от F.dll. Теперь BG.dll связан для получения foo адрес от G.dll. Я все еще не вижу проблемы.

Теперь замените AF.exe своим приложением, BG.dll с приложением Вашего поставщика, F.dll с Вашей версией повышения, G.dll с версией повышения поставщика.

Завершение: Я не вижу проблем, если имена dll отличаются.

0
ответ дан 6 December 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: