Где должна находиться внешняя DLL? - PullRequest
3 голосов
/ 16 февраля 2012

Допустим, у меня есть это в верхней части модуля:

Public Declare Function getCustomerDetails Lib "CustomerFunctions" () As Long

Если я запускаю программу из IDE VB6, где должен находиться CustomerFunctions.dll?

Если я запускаю исполняемый файл программы, где должен находиться CustomerFunctions.dll?

Ответы [ 2 ]

3 голосов
/ 16 февраля 2012

При загрузке стандартной DLL (а не ActiveX или COM dll) Windows применяет следующие правила:

Если включен SafeDllSearchMode:

  1. Каталог программы.
  2. Системный каталог.Либо (Windows \ System32 или Windows \ SysWow64, в зависимости от того, работаете ли вы на 64-битной или нет).
  3. 16-разрядный системный каталог (Windows \ System).
  4. Каталог Windows.
  5. Текущий каталог.
  6. Все каталоги, которые находятся в переменной среды PATH.

Если SafeDllSearchMode отключен, порядок поиска следующий:

  1. Каталог программ.
  2. Текущий каталог.
  3. Системный каталог.Либо (Windows \ System32 или Windows \ SysWow64, в зависимости от того, работаете ли вы на 64-битной или нет).
  4. 16-разрядный системный каталог (Windows \ System).
  5. Каталог Windows.
  6. Все каталоги, которые находятся в переменной среды PATH.

Мое личное предпочтение (а не мусорить в каталоге System или Windows) - создать где-нибудь каталог developmentDLLs и добавить его в ПУТЬ переменная.При распространении приложения поместите DLL в каталог приложения программы.Таким образом, у вас меньше всего шансов помешать работе других DLL.Для получения полной информации о загрузке DLL см. MSDN .

2 голосов
/ 16 февраля 2012

Поскольку это не DLL ActiveX, применяются несколько иные правила.

  • При работе в IDE вы можете поместить ее либо в c:\windows\system32, либо в каталог, из которого работает VB6 (напримерc:\program files\microsoft visual studio...).
  • При запуске исполняемого файла программы вне VB6 вы можете поместить DLL в c:\windows\system32 или в каталог приложения.

Помните, что я далвам технический ответ (например, поместите файл в c:\windows\system32), который будет работать.Однако в последнее десятилетие наблюдается тенденция выделения необходимых компонентов в каталог приложений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...