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
Здесь тоже ничего особенного...
Так что же здесь не так?

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

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

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

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

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

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