powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Декларирование 32 bit DLL в 64 bit VBA
6 сообщений из 6, страница 1 из 1
Декларирование 32 bit DLL в 64 bit VBA
    #39910252
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С Новым годом господа !

Имею 32 bit DLL созданную компилятором Delphi 7
Пытаюсь задекларир-ть функцию в 32 bit VBA Excel - порядок
Код: pascal
1.
  Private Declare Function MyFunction Lib "mydll.dll" (ByVal filename As String) As Long



Аналогичное сделал в 64 bit версии Excel - ошибка - "НЕТ файла DLL"
Код: pascal
1.
  Private Declare PtrSafe Function MyFunction Lib "mydll.dll" (ByVal filename As String) As Long



Особенность DLL созданные Microsoftom - 32 bit декларирую-ся нормально
Код: pascal
1.
2.
Declare Function GetActiveWindow Lib "user32" () As Long
Declare PtrSafe Function GetActiveWindow Lib "user32" () As Long



Скомпилированную версией Delphi - не может найти как файл.
Кто-то сталкивался с такой ситуацией ?

Спасибо.

P.S. - смену компилятора не предлагать - пока нет возможности.
...
Рейтинг: 0 / 0
Декларирование 32 bit DLL в 64 bit VBA
    #39910254
Michael Longneck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user32 в данном случае вовсе не означает, что будет загружена 32bit версия dll. Просто и 64bit называется user32.dll. А так, понятное дело, в 64 разрядном приложении нельзя использовать 32 битные dll
...
Рейтинг: 0 / 0
Декларирование 32 bit DLL в 64 bit VBA
    #39910281
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michael Longneck
user32 в данном случае


Это пример подключения

Вы хотели сказать что если к примеру заменить user32.dll взять ее из 32-bit версии OS
в Microsofte - то ТОЖЕ не будет работать ?
...
Рейтинг: 0 / 0
Декларирование 32 bit DLL в 64 bit VBA
    #39910283
Michael Longneck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разумеется. Без специальных сложных и неоправданных ухищрений работать не будет. В случае же user32.dll я не уверен даже, что возможно её "взять" не той битности.
...
Рейтинг: 0 / 0
Декларирование 32 bit DLL в 64 bit VBA
    #39910285
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X


Вы хотели сказать что если к примеру заменить user32.dll взять ее из 32-bit версии OS
в Microsofte - то ТОЖЕ не будет работать ?


А как это может работать чисто технически? Когда загружается длл, она просто попадает в адресное пространство процесса, функции длл ничем не отличаются от функций из родного процесса ( в том смысле, что для их вызова используется CALL, а не прерывание). x64 и x86, это, считай, два разных процессора, с таким же успехом можно пробовать выполнить код процессора другой архитектуры, ARM, например.
Когда был переход Win16->Win32 в ntvdm создали специальный механизм, который позволял (с болью) вызывать 16битные длл из Win32, сейчас такого механизма (Win64<->Win32) нет, насколько я знаю. Хотя, такой механизм, наверное, можно создать.
...
Рейтинг: 0 / 0
Декларирование 32 bit DLL в 64 bit VBA
    #39910302
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,
HOME_XАналогичное сделал в 64 bit версии Excel - ошибка - "НЕТ файла DLL"
Потому что нельзя загружать 32 битные dll в 64 битный процесс.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Декларирование 32 bit DLL в 64 bit VBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]