В стороннем .DLL-файле, который мы используем, есть ошибка, и мне поручили ее исправить.Библиотека была создана компанией, которую в последний раз наняли для поддержки кода, и у нас есть только часть исходного кода.Всякий раз, когда объекты, используемые для обработки, находятся в коде, который мы имеем, они имеют форму OleVariants.Мое решение состояло в том, чтобы создать подкласс класса с ошибкой и переопределить метод для исправления ошибки.Проблема заключается в том, что всякий раз, когда я пытаюсь вызвать метод из родительского класса, я получаю ошибку нарушения доступа к памяти из другого файла .DLL.
Я - полный новичок в Delphi, так как я работаю с ним уже третью неделю.,Буду признателен за любую помощь.
Спасибо.
РЕДАКТИРОВАТЬ: Я, вероятно, должен уточнить немного больше.Я заменяю исходный объект экземпляром нового класса, в котором есть исправление.Я пытаюсь привести исходный объект из OleVariant к новому классу и преобразовать его вниз или передать конструктору для нового объекта, чтобы я мог сохранить данные в объекте.Мне интересно, есть ли способ сделать это и не появиться ошибка, когда я вызываю унаследованную функцию или функцию из объекта после того, как он был приведен обратно в исходный тип.Еще раз спасибо.
РЕДАКТИРОВАТЬ 2: Чтобы ответить на один вопрос, я пытаюсь привести из OleVariant к его исходному классу или к созданному мною подклассу.
Чтобы ответить на второй вопрос:Я импортировал соответствующую библиотеку, затем написал следующее:
Subclass = class(SuperclassFromDll)
Где «Subclass» и «SuperclassFromDll» - это фактические имена классов.Если это неправильный способ сделать это, скажите, пожалуйста, как заменить данную функцию (возможно, записав исправление в модуль DllName_TLB?).Извините за отсутствие ясности, я пытаюсь быстро задать вопрос, чтобы я мог вернуться к попытке выяснить это.
РЕДАКТИРОВАТЬ 3: Я должен также отметить, что файл DLL был создан из DelphiПроект сделан предыдущей компанией.