Laden...

long array an native dll uebergeben

Erstellt von Ploetzi vor 15 Jahren Letzter Beitrag vor 15 Jahren 937 Views
Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 15 Jahren
long array an native dll uebergeben

            long[] patL = { 1, 1, 1, 0 };
            fbdioOpen();
            long nRet = Output(ref patlighthandler,patL[0], 29, 4);
            if (nRet != 0)
            {
               MessageBox.Show("Failed to output the data.");
            }

Hallo,
ich moecvhte gerne an Output , das ist eine Funktion in


        [DllImport(@"C:\IO.dll")]
        public static extern long  Output (long Handle,long Buffer,long dwStartNum,long dwNum);
        

das Array patL uebergeben ( siehe oben,...was mache ich hier falsch ( anbei die 2 snippets so wie ich das gerade geschrieben habe.

Ich habe mir gedacht "ref", da das ja sowas wie eine adresse ist, die uebergeben wird,...

naja ich hoffe ihr koennt mir helfen, hab schon 2 tage gegooglet, jetzt gehn mir die ideen aus

Gelöschter Account
vor 15 Jahren

wenn die methodensignatur ein long verlangt dann übergibt man auch ien long und nciht ein ref auf ein long und schon garnicht ein array aus long.

F
10.010 Beiträge seit 2004
vor 15 Jahren

@Ploetzi:
Ich denke das du die Imports von einer VB6 variante übernommen hast.
Dann bedenke, das long aus VB6 in .NET ein integer ist.

148 Beiträge seit 2006
vor 15 Jahren

dazu auch hier (Platform Invoke Data Types) eine gute Übersicht 🙂

greetz..

I cna tpye 300 wrods pre mnuite!

Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 15 Jahren

@FZelle,
du hast damit recht. Danke fuer den Tipp

 Sub patLight(patOperation As String)
Dim patL(3) As Long
Call fbdioOpen
For i = 0 To 3
patL(i) = Range(meinfeld)(1, i + 1)
Next i
nRet = OutputPoint(32123, patL(0), 29, 4)
If nRet <> 0
nRet = MsgBox("Failed to output the data.", (vbOKOnly + vbCritical), "OutPoint_B")
End If
End Sub
 

Das waere die Funktion die ich umsetzen will,.... und das bekomm ich jetzt seit emhr als einer Woche NICHT hin.

F
10.010 Beiträge seit 2004
vor 15 Jahren

Da sieht man schön, wie komisch man etwas mit VB6 hinbekommen konnte.

Was ist das für eine DLL?

Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 15 Jahren

Steuerung einer Maschine.
habs jetzt hinbekommen,ich stelle beizeiten den C# Code online damit wer anders auch daraus lernen kann.