none
Работа с лотус через API из dll-модуля (x64). Ошибка OLEAUT32.dll. Платформа Windows 2008 R2 x64 RRS feed

  • Вопрос

  • Здравствуйте!

    Немного предыстории в моей проблеме.
    Имеется операционная система Windows 2003 Server и Dll все соответственно 32-разрядные. Также установлен Lotus 6.5.
    Реализована на данный момент задача автоматической выборки и анализа документов из Lotus Notes, а именно имеется dll библиотека которая зарегистрирована в качестве external procedure в SQL 2000 и джоб, который её вызывает. В dll библиотеке используются API функции для работы с Lotus Notes.

    Появилась необходимость переписать данную задачу на х64 платформу. Была установлена ОСь Windows 2008 R2 x64 SP1, установлен SQL Server 2008 R2.
    Также потребовалось переписать dll на х64 разряда в связи с тем, что SQL не работает с 32 - разрядными библиотеками. Модуль был частично переписан и скомпилирован через среду Delphi XE2 и 64-битный компилятор.

    Регистрация 64 разрядной библиотеки в SQL 2008 R2 прошла успешно (32-разрядную библиотеку долго не мог подключить да и нельзя её подключить).

    Теперь собственно проблема. При вызове функции, которая читает содержимое Lotus Notes из dll возникает ошибка:

    Access violation at address 000007FEFFB65020 in module 'OLEAUT32.dll'. Write of address 000007FEFFB65020.

    При этом до этого сессия с Лотусом нормально запускает и нормально завершается. Проблема возникает именно в OLE т.е при взаимодействии нескольких систем.

    Было выполнено много действий по устранению данной проблемы но ничего не помогает.

    Буду признателен помощи!!!

    Повторюсь именно при чтении содержимого конкретного письма. То бишь если письмо пустое ошибки не возникает. Вложенный файл может быть любого типа и ошибка возникает во всех случаях.
    10 июля 2012 г. 1:10

Ответы