Страницы: 1
RSS
Работа макроса VBA с dll x64
 
Здравствуйте. Извиняюсь, что немного не по теме Форума, но вижу, что тут есть специалисты и рассматривались похожие проблемы. В общем, не в Excel, а в CorelDraw используется макрос, который взаимодействует с dll, сделанным в Delphi. Всё было сделано давным давно под 32 битное программное обеспечение. Сейчас встала задача обновления используемого dll и использование x64 ПО. Новый CorelDraw x32 без проблем заработал с новым dll x32 на старом макросе, но CorelDraw x64 отказался работать с dll x64 и просто экстренно завершает работу.
Почитав по этому вопросу темы, добавил PtrSafe после Declare. Но ничего не изменилось - как только идет обращение к dll x64 сразу происходит закрытие CorelDraw. Запуск макроса под отладчиком VBA тоже ничего не показывает, а так же закрывает программу. Помогите, пожалуйста, подружить макрос с dll x64.
Код
Private Declare PtrSafe Function GetParams Lib "C:\Program Files\Corel\CorelDRAW Graphics Suite 2020\Draw\DLLs\My.dll" (ByVal Dir As String) As Boolean
 
Sub SetParams()
Dim res
Dim Dir As String
 
Dir = ActiveDocument.FilePath
res = GetParams(Dir)
 
End Sub
 
кросс https://www.cyberforum.ru/vba/thread2781092.html
 
Цитата
Алексей написал:
сделано давным давно под 32 битное программное обеспечение
Разрядность подключаемых dll должна соответствовать разрядности приложения. Нужно собрать 64-разрядную dll или использовать 32-разрядное приложение. Тему нужно перенести в "Курилку".
Владимир
 
Цитата
sokol92 написал:
Нужно собрать 64-разрядную dll или использовать 32-разрядное приложение.
Это я понимаю. Я проверял работу dll x32 в coreldraw x32 - всё работало. Теперь проверяю работу dll x64 в coreldraw x64 - не работает. Пытаюсь разобраться в проблеме и решить ее
Изменено: Алексей - 10.02.2021 14:38:18
 
У нас хозяин фабрики по производству dll - Виталий (Bedvit).  :)  
Владимир
 
Алексей, Я вам ответил на киберфоруме (раз там первое сообщение оставил).
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
bedvit написал:
Я вам ответил на киберфоруме
Спасибо Вам за помощь
Страницы: 1
Наверх