Hallo,
ik probeer een programma te schrijven voor mijn usbuirt remote. Hiervoor gebruik ik een .dll file van usbuirt zelf waar enkele functies in staan. Het basisprogramma werkte maar nu het uitgebreider is werkt het ineens niet meer. Ik krijg volgende fout:
Stukjes code:
Ik weet wel wat de fout enzo betekent maar begrijp het toch niet helemaal goed. (Is dan ook eerste keer dat ik met een unmanaged dll werk). Iemand die me opweg kan helpen?
Ik heb al veel hierover op internet gezocht/gelezen/geprobeerd maar niets maakt uit dus daarom vraag ik hier wat hulp
ik probeer een programma te schrijven voor mijn usbuirt remote. Hiervoor gebruik ik een .dll file van usbuirt zelf waar enkele functies in staan. Het basisprogramma werkte maar nu het uitgebreider is werkt het ineens niet meer. Ik krijg volgende fout:
De fout gebeurd wanneer ik de event: ir_Received opvang. Zet ik niets in die methode dan is er geen fout.A callback was made on a garbage collected delegate of type 'UsbUirtManagedWrapper!UsbUirt.Controller+ReceiveCallback::Invoke'. This may cause application crashes, corruption and data loss. When passing delegates to unmanaged code, they must be kept alive by the managed application until it is guaranteed that they will never be called.
Stukjes code:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| namespace usbRemote { public class frmMain : Form { public static Controller ir; public frmMain() { InitializeComponent(); } private void frmMain_Load(object sender, EventArgs e) { //activationTimer.Start(); //LoadProfiles(); ir = new Controller(); ir.BlinkOnReceive = true; ir.BlinkOnTransmit = true; ir.GenerateLegacyCodesOnReceive = true; ir.Received += new Controller.ReceivedEventHandler(ir_Received); ir.LearnCompleted += new Controller.LearnCompletedEventHandler(ir_LearnCompleted); ir.Learning += new Controller.LearningEventHandler(ir_Learning); ir.TransmitCompleted += new Controller.TransmitCompletedEventHandler(ir_TransmitCompleted); } //Events //-------------------------------------------------------- void ir_Received(object sender, ReceivedEventArgs e) { SetIrReceived(e.IRCode); //hier gebeurd dan de fout } |
Ik weet wel wat de fout enzo betekent maar begrijp het toch niet helemaal goed. (Is dan ook eerste keer dat ik met een unmanaged dll werk). Iemand die me opweg kan helpen?
Ik heb al veel hierover op internet gezocht/gelezen/geprobeerd maar niets maakt uit dus daarom vraag ik hier wat hulp