Entwickler-Ecke
Basistechnologien - DllImport angeblich nicht möglich
Xzeer - Sa 05.12.09 18:13
Titel: DllImport angeblich nicht möglich
Hallo,
ich versuche, bisher leider ohne Erfolg, eine DLL einzubinden und deren Methoden zu übernehmen.
Die DLL hängt unten an.
Der akuelle Versuch:
C#-Quelltext
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: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47:
| using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices;
namespace USBBoardTest { public partial class Form1 : Form {
[DllImport("K8055D_C.dll")] public static extern int OpenDevice(long CardAddress);
[DllImport("K8055D_C.dll")] public static extern void CloseDevice();
[DllImport("K8055D_C.dll")] public static extern void SetDigitalChannel(long Channel);
[DllImport("K8055D_C.dll")] public static extern void ClearDigitalChannel(long Channel);
public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { OpenDevice(0); }
private void button2_Click(object sender, EventArgs e) { CloseDevice(); }
private void button3_Click(object sender, EventArgs e) { SetDigitalChannel(1); }
private void button4_Click(object sender, EventArgs e) { ClearDigitalChannel(1); } } } |
Und der Fehler:
Wär echt klasse, wenn mir da wer helfen könnte.
Ich vermute das es einen Konfik der Datentypen ist, weiß aber nicht, wie ich in die DLL reinschauen kann und anschließend das Problem bei mir im Projekt beheben kann.
Es gibt
hier [
http://www.velleman.eu/distributor/products/view/?id=351980] auch noch eine Projektseite des Boards und der DLL.
Moderiert von
Christian S.: Inline-Anhang auch inline eingefügt ;-)
JüTho - Sa 05.12.09 18:22
Hallo,
als erstes empfiehlt es sich doch, die angegebene BadImageFormatException auszuwerten. Dabei ist ex.ToString immer ausführlicher als ex.Message; auch ex.InnerException ist oft hilfreich.
Wie in der SDK-Doku/MSDN/Hilfe unter "Hinweise zu dieser Klasse" zu lesen ist, bringen die Angaben, die in den Konstruktoren angegeben werden können und dann in der Exception auftauchen, Hinweise auf das konkrete Problem.
Gruß Jürgen
Xzeer - Sa 05.12.09 18:32
also bei ex.tostring() kommt das:
Moderiert von
Christian S.: Inline-Anhang auch inline eingefügt ;-)
Kha - Sa 05.12.09 20:09
Ich rate mal, es ist eine x86-Dll und du hast ein x64-OS? Dann musst du auch in den Projekteigenschaften als Platform x86 eintragen.
Xzeer - Sa 05.12.09 20:45
da kannst du richtig liegen, aber wie stelle ich auf x86 um?
Kha - Sa 05.12.09 21:20
Projekteigenschaften -> Erstellen -> Zielplattform
Xzeer - So 06.12.09 14:33
Hey, danke Kha. Funktioniert jetzt einwandfrei. :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!