AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

C++ DLL in delphi einbinden

Ein Thema von mensah · begonnen am 4. Jul 2005 · letzter Beitrag vom 4. Jul 2005
Antwort Antwort
Seite 2 von 2     12   
Phistev
(Gast)

n/a Beiträge
 
#11

Re: C++ DLL in delphi einbinden

  Alt 4. Jul 2005, 15:14
Kann es sein, dass die Namen anders sind bzw. nicht mitexportiert werden? In dem Fall bräuchte man noch name bzw. index.
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#12

Re: C++ DLL in delphi einbinden

  Alt 4. Jul 2005, 15:19
Ich schätze, dass StartMessung(Ex) und StopMessung die Funktionen sind, die den Ausgang regeln sollten.
Deshalb würde ich mal vorschlagen, dass du 2 Buttons hinzufügst, die dir temporär die Messung Startet und Stoppen. Dann kannst du schaun, ob es an deinem Code oder an der DLL/Hardware liegt.

Nachdem das aber noch ungeklärt is:
Zitat von mensah:
bin gerade in der Bibo wo keine USB-Einkopplung möglich ist
Heißt das, dass die Ausgabe über USB erfolgt? Oder wohin wird die Sinus-Spannung ausgegeben? Wenn die Ausgabe auf Hardware erfolgt, wärs zur Sicherheit auch nicht schlecht, das Messgerät (mit dem du die Sinus-Spannung checkst) zu überprüfen, ob das die Fehlerquelle ist.



@Phistev (In der hoffnung, dass ich dich nicht falsch verstanden habe): Ich glaube nicht, dass es beim Importieren fehlt. Wenn da etwas fehlschlägt, gibts ne schöne AV (afaik zumindest). Und von der wird er uns wohl hoffentlich erzählt haben, wenns tatsächlich eine solche geben sollte
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#13

Re: C++ DLL in delphi einbinden

  Alt 4. Jul 2005, 15:21
Ich wollte das .h File sehen nicht das konvertierte Delphi-File.
Es ist kein Wunder das es nicht funktioniert. "array of" ist nie eine gueltige Konversion einer C Funktion.

Am besten das .h File direkt an mich schicken. robert_marquardt att gmx dott de
  Mit Zitat antworten Zitat
mensah

Registriert seit: 4. Jul 2005
Ort: Ilmenau
8 Beiträge
 
Delphi 7 Professional
 
#14

Re: C++ DLL in delphi einbinden

  Alt 4. Jul 2005, 15:40
ich frage meinem Betreuer nach dem C Code.

in der Dokumentation steht:
EXPORT_APIintStartMessungEX(int*pChldx,int chCount){call this function to start data acquistion}

EXPORT-APIintGetBlockValues(float*const pValues)

EXPORT-APIintGetBlockValuesEx(float*const pValues,int numVec) {call this function to get new data values from amplifier}
vielan dank
  Mit Zitat antworten Zitat
mensah

Registriert seit: 4. Jul 2005
Ort: Ilmenau
8 Beiträge
 
Delphi 7 Professional
 
#15

Re: C++ DLL in delphi einbinden

  Alt 4. Jul 2005, 15:41
Hallo Herr Robert,
ich werde Ihnen eine mail schicken.Danke
vielan dank
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#16

Re: C++ DLL in delphi einbinden

  Alt 4. Jul 2005, 15:46
Jetzt bräuchte man noch zum Makro "EXPORT" die Deklaration. Kann bisher alles mögliche von der Aufrufkonvention her sein - usw.
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#17

Re: C++ DLL in delphi einbinden

  Alt 4. Jul 2005, 16:30
Wie Robert M. schon sagt:
pValues: array of single dürfte nicht stimmen, könnte eher so aussehen:
pValues: PSingle mit Inc(Puffer) oder PSingle(Integer(Puffer) + i*AnzahlDaten+j)^ kommst du dann an die weiteren Werte.
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#18

Re: C++ DLL in delphi einbinden

  Alt 4. Jul 2005, 19:07
Wenn die C-Variante bei __stdcall vor dem Zeiger auf das erste Element den Index des letzten Elements (High) als Integer auf dem Stack ablegt, dann kann man mit 'Offenen Arrays' arbeiten um sich die Arbeit zu erleichtern (sollte man vielleicht als overload in Betracht ziehen)
Delphi-Quellcode:
// 1:1
procedure Foo(A: PInteger; H: Integer); stdcall; overload;
var
  I: Integer;
begin
  for I := 0 to H do
  begin
    ShowMessage(IntToStr(A^));
    Inc(A);
  end;
end;

// open array
procedure Foo(A: array of Integer); stdcall; overload;
var
  I: Integer;
begin
  for I := 0 to High(A) do
    ShowMessage(IntToStr(A[I]));
end;

// test
procedure TForm1.Button1Click(Sender: TObject);
var
  I: Integer;
  A: array [0..3] of Integer;
begin
  // 1:1
  for I := 0 to High(A) do
    A[I] := I;
  Foo(Addr(A[0]), High(A));
  // open array
  Foo([0, 1, 2, 3]);
end;
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#19

Re: C++ DLL in delphi einbinden

  Alt 4. Jul 2005, 19:26
Das mit dem "array of" ist etwas gefaehrlich und ausserdem ist die uebliche Konvention das die Laenge nach dem C-Array folgt.

Das Zip war korrupt. Haette ich nicht inzwischen DSL waere ich auch noch sauer, denn ich habe nur nach dem .h File gefragt und offensichtlcih ein ganzes Projekt bekommen. Die Unis sind auch nicht mehr was sie mal waren. Frueher konnten die Leute wenigstens lesen.
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#20

Re: C++ DLL in delphi einbinden

  Alt 4. Jul 2005, 19:38
Zitat von Robert Marquardt:
Das mit dem "array of" ist etwas gefaehrlich und ausserdem ist die uebliche Konvention das die Laenge nach dem C-Array folgt.
Stimmt, ich mag halt Sonderfälle
(oder vielleicht liest ein C++-Entwickler mit und lernt dabei Delphi *g*)

Zitat von Robert Marquardt:
Frueher konnten die Leute wenigstens lesen.
Früher bekamen Stundenten, welche Urlaubsfotos als 1600x1200 BMP-Anhang an <alle> schickten, noch eine deutliche Verwarnung
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz