Страницы: 1
RSS
Запустить на Win64 GetMem4()
 
Добрый день. Тема избитая, но запустить GetMem на 64-разрядном офисе не получается.
Нужно, чтобы заработала, например, такая конструкция:
Код
Dim SA_addr as Long, Arr()
Arr=Array(1,2,3)
'получить адрес структуры SAFEARRAY массива Arr
GetMem4 ArrPtr(Arr), SA_addr
Декларации для 32р такие:
Код
Private Declare Function ArrPtr Lib "msvbvm60" Alias "VarPtr" (Arr() As Any) As Long
Private Declare Function GetMem4 Lib "msvbvm60" (ByVal SrcAddr As Long, ByRef Dst_varName As Long) As Long
 
Доброе время суток.
Цитата
ANik написал:
тема избитая
Ещё бы. А поискать?
 
Та искал же ж... по поводу GetMem4 ничего не нашёл ни на этом сайте, ни в интернете
 
Цитата
ANik написал:
о поводу GetMem4 ничего не нашёл ни на этом сайте
Так может стоило искать не столь локально? А в рамках
Цитата
ANik написал:
на 64-разрядном офисе
То есть как использовать WinAPI функции в 64бит офисе? Тут бы вы много чего бы нашли. Перейдите по ссылке выше, прочитайте статью и скачайте файл с образцами оформления WinAPI функций в VBA7, найдите свои и используйте на здоровье.
 
Уважаемый ANik! Библиотека msvbvm60.dll в 64-разрядном исполнении "штатно" в составе Win10 и Office 64 не поставляется (по крайней мере, у нас ее нет,  только 32-разрядный вариант). Не могли бы Вы дать ссылку на сайт Microsoft?
Владимир
 
Цитата
sokol92 написал:
Библиотека msvbvm60.dll
Привет, Владимир.
Спасибо за комментарий. Что-то упустил из виду при ответе имя библиотеки :(
 
Здравствуйте, Андрей! А я уже и ответ написал. Начал проверять и...  8-0  
Владимир
 
sokol92 написал:
Цитата
Библиотека msvbvm60.dll в 64-разрядном исполнении "штатно" в составе Win10 и Office 64 не поставляется
Отсутствие библиотеки не есть проблема, её можно скачать http://www.dlldownloader.com/msvbvm60-dll/
Только вопрос, как правильно описать параметры функций, чтобы можно было их вызывать?
Ладно, тогда придётся использовать CopyMemory для этих целей.

Ситуация ещё усложняется тем, что я не могу попробовать у себя на компе всё это. Поставить одновременно и x86 и x64 версии офиса нельзя. Снёс х86, перезагрузился, а установщик х64 всё равно сообщает, что уже установлена 32-разрядная версия и не хочет устанавливать х64.
 
Цитата
ANik написал:
её можно скачать  http://www.dlldownloader.com/msvbvm60-dll/
Боюсь, что указанная библиотека 32-разрядная.
Владимир
 
Цитата
ANik написал:
а установщик х64 всё равно сообщает,
значит есть что-то из офисных продуктов, тип Project, Visio 32го разряда.
PS. Виртуалка для таких целей очень помогает :-)
По вопросам из тем форума, личку не читаю.
 
Да, все предлагаемые к скачиванию версии 32-разрядные, но это же не значит, что их нельзя запускать из 64-разрядного офиса? (я лично ещё пока не знаю, это моё предположение  :)  )
Пошла установка x64-го офиса (неанинсталлированный пакет совместимости мешал установщику запуститься). Буду пробовать....
 
Изучаем.
Цитата
Native 64-bit processes in Office 2010 cannot load 32-bit binaries.
Изменено: sokol92 - 30.03.2018 18:48:08
Владимир
Страницы: 1
Наверх