Почему завернутая COM-библиотека C# ищет свой файл конфигурации в каталоге Windows SysWOW64\System32?C#

Место общения программистов C#
Ответить
Anonymous
 Почему завернутая COM-библиотека C# ищет свой файл конфигурации в каталоге Windows SysWOW64\System32?

Сообщение Anonymous »


У меня есть старое приложение Pascal/Delphi (#1), зарегистрированное в Windows. Это исполняемый файл COM-компонента. У меня также есть еще одно старое приложение Delphi (№2), которое вызывает этот COM-компонент, обернув и объявив типы в DLL, и проделав всю магию, необходимую для выполнения вызовов. Это работает хорошо. Разумеется, все это 32-битные приложения.

Я ссылался на тот же исполняемый файл COM (№1) в консольном приложении, предназначенном для x86 (32-разрядной версии), щелкнув правой кнопкой мыши проект и добавив ссылку COM. Я выбрал библиотеку COM из списка зарегистрированных COM-компонентов в Windows (без перехода к exe-файлу №1).

Это добавило типы, обернуло COM-компонент и позволило мне вызывать его из консольного приложения C#. Однако это не удается, поскольку зарегистрированный COM-компонент ищет свой файл конфигурации в C:\Windows\SysWow64, а не в каталоге программных файлов COM-компонента (опять же, COM-компонент представляет собой исполняемый файл для установленного устаревшего приложения, № 1). .

Я запустил монитор процесса и увидел, как другое старое приложение Delphi (#2) вызывает компонент COM, и все работает так же, за исключением того, что когда компонент COM обращается к своему файлу конфигурации, он ищет его в «c:\program files». ", где он установлен (место установки № 1). Когда мое приложение вызывает его, компонент COM пытается получить доступ к конфигурации в c:\windows\syswow64. Что вызывает разницу в рабочем каталоге в этом случае?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»