2013-04-05 3 views
0

У нас есть 2 библиотеки DLL. Оба dll делают в основном то же самое. Одна DLL (DLL_A) находится в одном каталоге для запуска веб-страницы. Другая DLL (DLL_B) находится в другом каталоге, на который будет называться другая веб-страница . Обе веб-страницы изолированы. Нет контакта от одного myWebA.htm до myWebB.htm.
D: \ mywebA \ myWebA.htm
D: \ mywebA \ DLL_A.dll

vc dll автоматически отменяет регистрацию

D: \ myWebB \ myWebB.htm
D: \ myWebB \ DLL_B.DLL

DLL_A был написан несколько лет назад. Недавно мы создали DLL_B для использования в myWebB. Теперь мы замечаем эту проблему.

Если пользовательский веб-сайт пользователя DLL_A.dll, он отменит регистрацию DLL_B.dll. И наоборот.

Обе библиотеки DLL могут быть зарегистрированы. DLL, получившая название FIRST, отменит регистрацию другой DLL.

Одна вещь, которую я заметил, которая когда-либо запускала DLL, будет иметь тот же PID на сервере (windows 2003).

Если бы я мог зарегистрировать их с другим PID, это бы решило проблему? если так как?

Любые другие предложения?

ТИА Steve42

ответ

1

Во-первых, я полагаю, вы говорите о COM DLL, здесь, а не какой-либо другой. В этом случае, возможно, обе библиотеки DLL имеют одинаковый идентификатор GUID. В этом случае это создаст проблему, поскольку только одна DLL может быть зарегистрирована за раз, так как идентификаторы GUID должны быть уникальными машинами.

Если у вас установлена ​​Visual Studio, существует множество инструментов, таких как COM Viewer, которые сообщают вам GUID обеих DLL при перетаскивании.

+0

Да, у них одинаковый идентификатор GUID. ** Как его изменить? **
Steve42

+0

@ Steve42 - В этом случае у вас есть два варианта: [1 ] Либо получите исходный код и перекомпилируйте DLL_A или DLL_B (и не забывайте менять GUID перед перекомпиляцией). [2] Еще один способ - отменить регистрацию обеих библиотек DLL и просто поместить их в свои каталоги веб-приложений там, где они нужны. Таким образом, обе библиотеки DLL не будут иметь никакой видимости друг для друга, и они будут работать на одной машине, хотя они имеют одинаковый идентификатор GUID. –

+0

Я хочу изменить с помощью компилятивного кода в этой DLL. Я попытался изменить его в OAIDL.H. Это не работает. Я попытался изменить его в других областях, но по умолчанию возвращается к «00020405 ...» ** Где я могу изменить GUID? ** – Steve42

Смежные вопросы