Моя функция загрузки файлов, используемая для отображения ее прогресса в ProgressBar, но теперь, когда я переместил ее в DLL, это невозможно.Контроль доступа к DLL
Я хотел бы сделать что-то вроде этого (в DLL):
Public Function uploadfile(ByVal name As String, ByVal path As String, ByVal identifier As Integer,ByVal control As ProgressBarThingyHere,ByVal toProgressBar As Boolean) As String
'snipped unimportant code
If toprogressbar then
SendFileWithProggress(path,control)
else
SendFileNoProgress(path)
end if
End Function
'Send File
Private Sub SendFileNoProgress(ByVal path As String)
sendfile(path, NULL, False)
End Sub
Private Sub SendFileWithProggress(ByVal path As String, ByVal control As ProgressBarThingyHere)
sendfile(path, control, True)
End Sub
Так что я могу просто позвонить (псевдокод)
dll.uploadfile("filename","path",fileID,Form1.ProgressBar1,true)
или
dll.uploadfile("filename","path",fileID,NULL,false)
Возможно ли это?
индикатор выполнения должен быть в вашей форме вызова, поэтому DLL должна реализовать механизм обратного вызова, который уведомляет основного вызывающего абонента о ходе обновления файла (может быть, передается в процентах в качестве параметра). – vulkanino
Как я могу позволить callback знать, что «сообщать»? Я никогда раньше не использовал его. – natli