C# COM INTEROP и VB6 – ресурсы не выпускаютсяC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 C# COM INTEROP и VB6 – ресурсы не выпускаются

Сообщение Anonymous »

У меня есть библиотека COM INTEROP C# .netFramework4.8, которая принимает данные и помещает их в файл .pdf для сохранения где-нибудь. Это предполагает использование PDFSharp, так как мне нужно вытащить страницы из существующих файлов .pdf и включить их в новый файл — ничего страшного. У меня есть приложение VB6, которое создает экземпляр этого COM-объекта и предоставляет данные для включения в новый .pdf — здесь тоже ничего страшного.
У меня возникают проблемы с освобождением ресурсов, а именно PDF-файла, созданного PDFSharp:

Код: Выделить всё

        newDoc.Save(newFile);
newDoc.Dispose();
В VB6 я не могу удалить файл или перезаписать его, хотя я все еще могу читать его (и не могу удалить/переименовать в проводнике). У меня нет этой проблемы в моем тестовом приложении .netFrmwk.
Файл .pdf привязан во время первой отладки и не освобождается после завершения отладки - мне приходится закрыть VB6, чтобы снять блокировку файла. Это говорит мне о том, что VB6 удерживает ресурс неопределенное время, хотя теоретически COM-объект VB6 имеет значение NULL и PDFSharp удалил его.
это мой код VB6:

Код: Выделить всё

Dim path As String
Dim file As String

path = txtPath.Text
file = txtFile.Text

Dim tst As New ComDLL.Class
'Set tst = New ComDLL.Class
Dim i As Long

i = tst.GeneratePDF(path, file)
txt_OUT.Text = tst.GetErrorMessage

Set tst = Nothing
Здесь тоже ничего особенного...
Так что же здесь не так?
РЕДАКТИРОВАТЬ :
Чтобы пролить немного света на мой COM-компонент:
У меня есть класс с двумя методами, как видно из приведенного выше кода VB6. Я не счел целесообразным реализовать деструктор, поскольку я избавляюсь от всех ссылок на память в этих методах - так что на самом деле избавляться не от чего.
Было ли это глупо с моей стороны? Признаюсь, я погружаюсь в COM всего две недели...

Подробнее здесь: https://stackoverflow.com/questions/792 ... g-released
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • C# COM INTEROP и VB6 – ресурсы не выпускаются
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Office.Interop.Excel и Office.Interop.Outlook Развертывание по щелчку мыши и Windows 11
    Anonymous » » в форуме C#
    0 Ответы
    41 Просмотры
    Последнее сообщение Anonymous
  • Класс COM .NET 8, использующий GeneratedComInterfaceAttribute, невидимый для VB6/VBA или OLEViewer
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Мы перенесли код VB6 на C# в .net.
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как обрабатывать несоответствия типов данных при переносе кода VB6 в .NET? [закрыто]
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»