Загрузка 32-битной DLL с помощью Excel 2007 (64-битная версия Vista) - PullRequest
1 голос
/ 05 мая 2009

Я обнаружил, что не могу загружать любые 32-разрядные библиотеки DLL, используя свою версию Office 2007. Я использую 64-разрядную версию Vista и предполагаю, что Office также находится в 64-разрядном режиме. Можно ли запустить Excel в 32-битном режиме Или же Есть ли способ объявить DLL с помощью VB для загрузки 32-битной DLL?

Поскольку у меня нет исходного кода для некоторых библиотек DLL, которые я использую, я не могу просто перекомпилировать материал для 64-битного режима. Поэтому я думаю, что у меня есть варианты заставить Excel работать в 32-битном режиме или объявить DLL, которую я использую, как 32-битную DLL, даже если моя среда 64-битная.

Я получаю сообщение об ошибке: «DLL не найдена», хотя библиотека DLL там на самом деле.

Ниже приведен пример объявления. Есть ли 32-битный атрибут для этого оператора?

Закрытое Объявление функции ESQMain Lib "ESQuotes2.dll" Псевдоним "_ESQMain @ 12" _ (ByVal func As Long, ByVal ticker_symbol As String, ByVal Result As String) Как целое число

Ответы [ 2 ]

2 голосов
/ 05 мая 2009

У вас неверное предположение - Office в настоящее время недоступен в 64-разрядной версии. По слухам, следующая версия Office (Office 2010) будет поставляться с 32 и 64 битами.

0 голосов
/ 05 мая 2009

Вы не можете «объявить» DLL как 32-битную. Это либо двоичный файл Win32, либо двоичный файл Win64. Первый тип двоичного файла может быть загружен в процессах Win32, второй - в процессах Win64. Вы не можете смешивать их. Атрибуты при импорте Visual Basic не помогают.

Итак, ваш единственный вариант - запустить 32-битный двоичный файл Excel. Он должен существовать, очевидно, поскольку Office все еще доступен для Vista 32, но вопрос в том, установлен ли он и где.

...