У меня возникают проблемы с освобождением ресурсов, а именно PDF-файла, созданного PDFSharp:
Код: Выделить всё
newDoc.Save(newFile);
newDoc.Dispose();
Файл .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