ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
405
405
EMPFEHLEN
-
Guten Morgen Tutorials,
habe in einer API (VC++) eine Funktion wie folgt:
PCIDIO_API BOOL pcidioInitCards(DWORD *a_dwNumOfCards);
Nun muss ich die mit dllimport über C# aufrufen. Leider weis ich nicht mehr wie ich Zeiger übergebe, bzw. einen Zeiger in C# deklariere und initialisiere.
Und wo wir grad dabei sind, weis einer von Euch wie man den Datentyp DWord initialisiert?
Salü
D12Geändert von D12 (20.07.05 um 08:09 Uhr)
-
Zeiger übergeben, habe ich lösen können, nun muss ich den noch initialaisieren....
Beispiel:
unsafe
{
uint* a_dwNumOfCards;
*a_dwNumOfCards = 0; //*** hier meldet der Compiler einen Fehler...
// Fehler: error CS0165: Verwendung von
// möglicherweise nicht zugewiesenen
// lokalen Variablen 'a_dwNumOfCards'
pcidioInitCards(a_dwNumOfCards);
}
*grummel* das ist zum Mäusemelken, wenn man wegen so was nicht weiter kommt. Das behandelt keines meiner Bücher,. lol, vielleicht ist das ein Hinweis auf die mengelnde Qualität meiner Bücher...
Salü,
D12
-
Machs so:
uint* a_dwNumOfCards = (uint*)0;
Gruss Alexander
-
Andererseits frage ich mich, wieso du unsafe code benötigst, um diese Funktion aufzurufen... Gib doch mal deine Funktionsdeklaration von pcidioInitCards durch.
Ich denke, sie sollte in der richtung aussehen:
[DllImport("deineVCC.dll", CharSet = CharSet.Auto,
SetLastError = true)]
public static extern void pcidioInitCards(UIntPtr dwNumOfCards); //evtl. hier auch IntPtr dwNumOfCards
Normalerweise erledigt der Marshaller die Datentypskonvertierung, solange die Datentypen kompatibel sind.
Gruss Alexander
-
Ich muss mit "call by reference arebeiten", die Funktion selber ist in einer dll, deren Quellcode ich nicht kenne (Treiber).
Zitat von kahuna
-
Danke, das funktioniert...
Zitat von kahuna
Ähnliche Themen
-
Speicherbereich eines Prozesses
Von Ichbinalex im Forum .NET CaféAntworten: 1Letzter Beitrag: 08.06.09, 15:00 -
Zeiger auf Zeiger - char Zeichenanzahl ausgeben - strlen?
Von SebastianHL im Forum C/C++Antworten: 0Letzter Beitrag: 27.12.07, 16:08 -
Image aus Speicherbereich erstellen ?
Von Hroudtwolf im Forum C/C++Antworten: 3Letzter Beitrag: 03.04.07, 14:17 -
Zeiger auf Zeiger nicht verstanden
Von Razorhawk im Forum C/C++Antworten: 6Letzter Beitrag: 17.10.05, 12:24 -
Speicherbereich von Programmen auslesen
Von JoKne im Forum Coders TalkAntworten: 10Letzter Beitrag: 07.07.04, 11:22





Zitieren
Login





