AGB  ·  Datenschutz  ·  Impressum  







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

Hilfe bei Übersetzung VB to Delphi

Ein Thema von bluescreen25 · begonnen am 22. Jan 2009 · letzter Beitrag vom 23. Jan 2009
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#1

Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 15:27
Kann jemand bei der Übersetzung aushelfen ?

Delphi-Quellcode:
Public Function WVB_GetAFList() As Single()
    Dim aflist() As Single
    Dim arysize As Long
    Dim LoopArr As Single
    
    ' Create the array
arysize = 25
ReDim aflist(arysize - 1) As Single

If (VB_GetAFList(aflist(0), arysize)) Then
ReDim Preserve aflist(arysize - 1)
For LoopArr = 0 To UBound(aflist)
Debug.Print "AFLIST = " & aflist(LoopArr)
Next LoopArr
End If
WVB_GetAFList = aflist
End Function

meine kläglicher Versuch:

Delphi-Quellcode:
function WGetAFList:String;
var
  aflist : array of Single;
  arysize: Integer;
  LoopArr: Integer;
begin
    Result := '';

    arysize := 25;
    SetLength(aflist, arysize-1);

    If GetAFList(aflist[0], arysize) then
    SetLength(aflist, arysize-1);
    For LoopArr := Low(aflist) To high(aflist) do
    Result := floattostr(aflist[LoopArr]);
End;
Gruß, bluescreen
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 15:29
Existier die Funktion GetAFList() ?
Markus Kinzler
  Mit Zitat antworten Zitat
bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 15:34
Zitat von mkinzler:
Existier die Funktion GetAFList() ?
in einer dll als export

Public Declare Function VB_GetAFList Lib "USBRadio.dll" (ByRef ary As Single, ByRef size As Long) As Boolean
Delphi-Quellcode:
type
 TFNGetAFList = function(buf:Single; len: Integer):Boolean;stdcall;
...
Mit anderen Funktionen aus der dll habe ich keine Probleme, scheint, das ich mit den arrays nicht richtig umgehe...exception wenn "GetAFList" ausgeführt wird.

Gruß, bluescreen
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
471 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 15:36
Hallo,

Wenn du das array von vornhereine kennst würd ich das vordeklarieren

aflist : array[0..24] of Single;
und die for-schleife würde ich auch einfacher schreiben

 For LoopArr := 0 To 24 do wobei loopArr sollte keine Float sondern ganzzahl sein, sowas wie

var LoopArr: integer;

Wenn dein array eh immer 25 Einträge hat dann macht das setzen der länge und die abfragen zur Länge wärend der Laufzeit keinen Sinn und der Code wird nur unübersichtlicher.

Meine Meinung dazu...

Gruß Matthias
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 15:40
Zitat:
Wenn du das array von vornhereine kennst würd ich das vordeklarieren
Und wenn nicht?
Zitat:
und die for-schleife würde ich auch einfacher schreiben
Warum auch sauber wenn es dreckig geht Eine Schleife mit den ermittelten Grenzen ist auf jeden Fall besser

Versuch mal
TFNGetAFList = function(var buf:Single; len: Integer):Boolean;stdcall;
Markus Kinzler
  Mit Zitat antworten Zitat
bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 15:41
Zitat von matashen:
Hallo,

Wenn du das array von vornhereine kennst würd ich das vordeklarieren

aflist : array[0..24] of Single;
und die for-schleife würde ich auch einfacher schreiben

 For LoopArr := 0 To 24 do wobei loopArr sollte keine Float sondern ganzzahl sein, sowas wie

var LoopArr: integer;

Wenn dein array eh immer 25 Einträge hat dann macht das setzen der länge und die abfragen zur Länge wärend der Laufzeit keinen Sinn und der Code wird nur unübersichtlicher.

Meine Meinung dazu...

Gruß Matthias
Danke, aber ich weiss nicht wie groß das array wird...es werden von einem Radio AF-Frequenzen eingepflegt, das ist vom Radiosender abhängig...

ein post über dir habe ich die Ableitung aus der DLL sowie den VB-Code getextet...

Gruß, bluescreen
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 15:48
Zitat von mkinzler:
Zitat:
Wenn du das array von vornhereine kennst würd ich das vordeklarieren
Und wenn nicht?
Zitat:
und die for-schleife würde ich auch einfacher schreiben
Warum auch sauber wenn es dreckig geht Eine Schleife mit den ermittelten Grenzen ist auf jeden Fall besser

Versuch mal
TFNGetAFList = function(var buf:Single; len: Integer):Boolean;stdcall;
danke, das hatte ich auch schon versucht...

hier mal der export aus der dll selbst....

USBRADIO_API bool __stdcall      VB_GetAFList (float* ary, int* arysize); Hmm keiner einen Fehler gefunden ?

Gruß, bluescreen
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
471 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 15:56
Wenn du die Arraygröße nicht kennst,dann klar war mein Post n Schwachsinn

VB_GetAFList
Ist deine deklaration von dir ?!, ich dachte aber immer das die eingebundenen Methoden aus dlls genauso heißen muss wie in der DLL. Mit genau der gleichen groß/kleinschreibung, also

VB_GetEon

Oder lieg ich da (schon wieder) falsch

Gruß Matthias
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 16:01
Zitat von matashen:
Wenn du die Arraygröße nicht kennst,dann klar war mein Post n Schwachsinn

VB_GetAFList
Ist deine deklaration von dir ?!, ich dachte aber immer das die eingebundenen Methoden aus dlls genauso heißen muss wie in der DLL. Mit genau der gleichen groß/kleinschreibung, also

VB_GetEon

Oder lieg ich da (schon wieder) falsch

Gruß Matthias
Das mit der richtigen Übernahme ist richtig, hatte die falsche Zeile aus dem Export kopiert, sorry

USBRADIO_API bool __stdcall      VB_GetAFList (float* ary, int* arysize); ist in meinem Code aber richtig, nur im Posting hier falsch angegeben gewesen.

Problem ist noch nicht gelöst !!

Der VB-Code funzt, der Delphi leider nicht.

Gruß, bluescreen
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 16:10
Dann übergebe mal explizit die Adressen der Parameter
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 20:05 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