Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Hilfe bei Übersetzung VB to Delphi (https://www.delphipraxis.net/128001-hilfe-bei-uebersetzung-vbulletin-delphi.html)

bluescreen25 22. Jan 2009 14:27


Hilfe bei Übersetzung VB to Delphi
 
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

mkinzler 22. Jan 2009 14:29

Re: Hilfe bei Übersetzung VB to Delphi
 
Existier die Funktion GetAFList() ?

bluescreen25 22. Jan 2009 14:34

Re: Hilfe bei Übersetzung VB to Delphi
 
Zitat:

Zitat von mkinzler
Existier die Funktion GetAFList() ?

in einer dll als export

Delphi-Quellcode:
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

matashen 22. Jan 2009 14:36

Re: Hilfe bei Übersetzung VB to Delphi
 
Hallo,

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

Delphi-Quellcode:
aflist : array[0..24] of Single;

und die for-schleife würde ich auch einfacher schreiben

Delphi-Quellcode:
 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

mkinzler 22. Jan 2009 14:40

Re: Hilfe bei Übersetzung VB to Delphi
 
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 :zwinker: Eine Schleife mit den ermittelten Grenzen ist auf jeden Fall besser

Versuch mal
Delphi-Quellcode:
TFNGetAFList         = function(var buf:Single; len: Integer):Boolean;stdcall;

bluescreen25 22. Jan 2009 14:41

Re: Hilfe bei Übersetzung VB to Delphi
 
Zitat:

Zitat von matashen
Hallo,

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

Delphi-Quellcode:
aflist : array[0..24] of Single;

und die for-schleife würde ich auch einfacher schreiben

Delphi-Quellcode:
 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

bluescreen25 22. Jan 2009 14:48

Re: Hilfe bei Übersetzung VB to Delphi
 
Zitat:

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 :zwinker: Eine Schleife mit den ermittelten Grenzen ist auf jeden Fall besser

Versuch mal
Delphi-Quellcode:
TFNGetAFList         = function(var buf:Single; len: Integer):Boolean;stdcall;

danke, das hatte ich auch schon versucht...

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

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

Gruß, bluescreen

matashen 22. Jan 2009 14:56

Re: Hilfe bei Übersetzung VB to Delphi
 
Wenn du die Arraygröße nicht kennst,dann klar war mein Post n Schwachsinn :kotz:

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

bluescreen25 22. Jan 2009 15:01

Re: Hilfe bei Übersetzung VB to Delphi
 
Zitat:

Zitat von matashen
Wenn du die Arraygröße nicht kennst,dann klar war mein Post n Schwachsinn :kotz:

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

Delphi-Quellcode:
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

mkinzler 22. Jan 2009 15:10

Re: Hilfe bei Übersetzung VB to Delphi
 
Dann übergebe mal explizit die Adressen der Parameter

bluescreen25 22. Jan 2009 17:31

Re: Hilfe bei Übersetzung VB to Delphi
 
Zitat:

Zitat von mkinzler
Dann übergebe mal explizit die Adressen der Parameter

Hmm, Hilfestellung ?

Jede Funktion aus der Dll wird so übergeben:

Delphi-Quellcode:
type
  TFNGetAFList         = function(var buf:Single; len: Integer):Boolean;stdcall;
  TFNGetRDSText        = function(const buf: string; var len: Integer): Boolean; stdcall;
...
...
var
  GetAFList            : TFNGetAFList         = nil;
  GetRDSText           : TFNGetRDSText        = nil;
..
..
function LoadDll: Boolean;
begin
  result := False;
  RadioLib := LoadLibrary('XYZ.Dll');
  if RadioLib <> 0 then
  begin
    @GetAFList           := GetProcAddress(RadioLib, 'VB_GetAFList');
    @GetRDSText          := GetProcAddress(RadioLib, 'VB_GetRDSText');
    ...
    ...
    result               := True;
  end;
end;

Hier habe ich mal 2 Funktionen , die GetRDSText funzt, die GetAFList nicht.

Der umgewandelte VB-Code von GetRDSText sieht so aus:

Delphi-Quellcode:
function WGetRDSText:String;
var
  sBuffer,Text   :String;
  iBufferLen :Integer;
begin
  Result := '';
  SetLength(sBuffer, 256);
  If GetRDSText(sBuffer,iBufferLen) then
  Text := trim(copy(sBuffer,1,iBufferLen));
  Result := Text;
end;
hier der VB-Code dazu:
Delphi-Quellcode:
Public Function WVB_GetRDSText() As String
   
    Dim sBuffer   As String * 256
    Dim iBufferLen As Integer
    Dim lRet      As Long
   
    If (VB_GetRDSText(sBuffer, iBufferLen)) Then
        WVB_GetRDSText = Left(sBuffer, iBufferLen)
    End If
   
End Function

und der von GetAFList

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  <---- hier kommt die exception !
    SetLength(aflist, arysize-1);
    For LoopArr := Low(aflist) To high(aflist) do
    Result := FloattoStr(aflist[LoopArr]);
End;
sowie der VB-Code:
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


oder meinst etwas anderes ?

Gruß, bluescreen

EWeiss 22. Jan 2009 19:13

Re: Hilfe bei Übersetzung VB to Delphi
 
Code:
Public Declare Function VB_GetAFList Lib "USBRadio.dll" (ByRef ary As Single, ByRef size As Long) As Boolean
ByRef ist in Delphi grundsätzlich 'var'
also
Delphi-Quellcode:
TFNGetAFList         = function(var ary:Single; var size: Integer):Bool;stdcall;
gruss Emil

bluescreen25 22. Jan 2009 19:27

Re: Hilfe bei Übersetzung VB to Delphi
 
Zitat:

Zitat von EWeiss
Code:
Public Declare Function VB_GetAFList Lib "USBRadio.dll" (ByRef ary As Single, ByRef size As Long) As Boolean
ByRef ist in Delphi grundsätzlich 'var'
also
Delphi-Quellcode:
TFNGetAFList         = function(var ary:Single; var size: Integer):Bool;stdcall;
gruss Emil

genau das wars ! supi :cheers:

hiermit habe ich noch ein Prob:

Delphi-Quellcode:
TFNGetEON            = function(var buf:Single;var len,pi,pty:Integer;var ps:String;var ta:Boolean;var eon:Integer):Boolean;stdcall;
Delphi-Quellcode:
function WGetEON1:String;
var
  aflist1 : array of Single;
  arysize: Integer;
  LoopArr: Integer;
  pseontemp: String;
  ttaeon1 :Boolean;
  tptyeon1:Integer;
  tpieon1 :Integer;
begin
    Result := '';
    SetLength(pseontemp,8);

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

    if GetEON(aflist1[0],arysize,tpieon1,tptyeon1,pseontemp,ttaeon1,0) then
    SetLength(aflist1, arysize-1);
    For LoopArr := Low(aflist1) To high(aflist1) do
    Result := floattostr(aflist1[LoopArr]);
End;

ps: dein messenger möchte mich nicht -- zonealarm

EWeiss 22. Jan 2009 19:30

Re: Hilfe bei Übersetzung VB to Delphi
 
Wie ist die Declaration von Vb 'GetEON' ?

Hier noch ein link der dir unterumständen bei übersetzungen helfen kann.
Ist zwar schon was älter aber fast noch alles zutreffend.

http://www.jwrider.com/lab/BAS2PAS.htm

Boolean kannst mit Bool ersetzen 1 Byte reicht dafür ;)

gruss Emil

bluescreen25 22. Jan 2009 19:38

Re: Hilfe bei Übersetzung VB to Delphi
 
Delphi-Quellcode:
Public Declare Function VB_GetEon Lib "USBRadio.dll" (ByRef ary As Single, ByRef size As Long, ByRef pi As Long, ByRef pty As Integer, ByVal ps As String, ByRef ta As Boolean, ByVal eon As Long) As Boolean
Delphi-Quellcode:
Public Function WVB_GetEon1() As Single()
    Dim aflist1() As Single
    Dim arysize As Long
    Dim LoopArr As Single
    Dim pseontemp As String * 8
    Dim ttaeon1 As Boolean
    Dim tptyeon1 As Integer
    Dim tpieon1 As Long
   
    ' Create the array
    arysize = 25
    ReDim aflist1(arysize - 1) As Single

   
   
If (VB_GetEon(aflist1(0), arysize, tpieon1, tptyeon1, pseontemp, ttaeon1, 0)) Then

           
       
   
            ReDim Preserve aflist1(arysize - 1)
            For LoopArr = 0 To UBound(aflist1)
                Debug.Print "AFLIST = " & aflist1(LoopArr)
            Next LoopArr
           
            WVB_GetEon1 = aflist1
    End If
    pieon1 = tpieon1
    ptyeon1 = tptyeon1
    taeon1 = ttaeon1
   
    pseon1 = Left(pseontemp, 8)
End Function

gruß, bluescreen

EWeiss 22. Jan 2009 19:39

Re: Hilfe bei Übersetzung VB to Delphi
 
ps und eon ist kein Byref also das var wech da ;)

Zitat:

BYVAL
To pass an argument by value, don't use Var or Const in parameter declaration.
Zitat:

BYREF
To pass an argument by reference, Var needs to be placed in front of the parameter declaration.
EDIT:
Delphi-Quellcode:
           
For LoopArr = 0 To UBound(aflist1)
  Debug.Print "AFLIST = " & aflist1(LoopArr)
Next LoopArr
           
WVB_GetEon1 = aflist1
Nur zur Info !
Die Schleife tut ja eigentlich nichts oder ?
Hier wird nur ähnlich 'ShowMessage' ausgegeben welche werte aflist[LooArr] enthält.
Daher kann die Rückgabe auch nicht
Delphi-Quellcode:
Result := floattostr(aflist1[LoopArr]);
sein.
Denke mal Result := aflist1;

gruss Emil

bluescreen25 22. Jan 2009 19:55

Re: Hilfe bei Übersetzung VB to Delphi
 
Danke, aber das allein langt net um die exception aufzuheben.

Result ist hier wie bei der GetAFList gelöst, das funzt. Bekomme laufend neue AF Frequenzen übergeben.

Die GetEON arbeitet eigendlich ähnlich, sollte EON-Daten bekommen, sind halt noch ein paar Parameter mehr die man zurückbekommt.
Leider da die exception.

Gruß, bluescreen

EWeiss 22. Jan 2009 20:05

Re: Hilfe bei Übersetzung VB to Delphi
 
Zitat:

Zitat von bluescreen25
Danke, aber das allein langt net um die exception aufzuheben.
Die GetEON arbeitet eigendlich ähnlich, sollte EON-Daten bekommen, sind halt noch ein paar Parameter mehr die man zurückbekommt.
Leider da die exception.

Gruß, bluescreen

Ist schwer den Fehler zu finden wenn man die Hardware bzw.. nicht über ein Beispiel verfügt.
Muss aber widersprechen die Rückgabe ist nicht korrekt.

Die schleife tut nichts kannst mir glauben.
Außer über Debug.Print (ähnlich ShowMessage) die werte im Debuger Fenster auszugeben.

Ist also Nutzlos.

gruss Emil

bluescreen25 22. Jan 2009 20:14

Re: Hilfe bei Übersetzung VB to Delphi
 
Zitat:

Zitat von EWeiss
Zitat:

Zitat von bluescreen25
Danke, aber das allein langt net um die exception aufzuheben.
Die GetEON arbeitet eigendlich ähnlich, sollte EON-Daten bekommen, sind halt noch ein paar Parameter mehr die man zurückbekommt.
Leider da die exception.

Gruß, bluescreen

Ist schwer den Fehler zu finden wenn man die Hardware bzw.. nicht über ein Beispiel verfügt.
Muss aber widersprechen die Rückgabe ist nicht korrekt.

Die schleife tut nichts kannst mir glauben.
Außer über Debug.Print (ähnlich ShowMessage) die werte im Debuger Fenster auszugeben.

Ist also Nutzlos.

gruss Emil

Im VB-Code ist das mit der Ausgabe so, im Delphi-Code nehme ich über Result die Werte auf und verwende diese weiter.

Und wie muss ich mir in VB das hier vorstellen ? Ist das net Result ? Hier wird wohl kein Index aus dem Array übergeben sondern das array komplett ?

WVB_GetEon1 = aflist1


Zur Info:
Im VB-Code werden die Daten direkt verarbeitet, in meinem Code wird eine eigene dll als wrapper genutzt, in der ein Callback zu meinem Programm sowie das Abrufen der anderen dll geschieht.

Zur Kontrolle habe ich erstmal versucht die Daten in meinem Programm sichtbar zu bekommen, dann will ich später diese in meiner dll verarbeiten, so das nur noch die aufgearbeiteten Funktionen/ Daten über das Callback kommen....

Gruß, bluescreen

PS ich habe mal die Result-Sache ausgeklammert....es liegt am GetEON-Aufruf.....scheint noch was mit dem Aufruf der Funktion aus der dll nicht zu stimmen..

EWeiss 22. Jan 2009 20:19

Re: Hilfe bei Übersetzung VB to Delphi
 
WVB_GetEon1 = aflist1 sagt dir ob der aufruf Erfolgreich war.
Nicht mehr und nicht weniger.

Er gibt dir also BOOL zurück oder ?
Ist der aufruf erfolgreich dann bekommst du über die 'var' Parameter
die eigenschaften (werte) zurückgeliefert.

Von diesen
Delphi-Quellcode:
    pieon1 = tpieon1 
    ptyeon1 = tptyeon1 
    taeon1 = ttaeon1 
   
    pseon1 = Left(pseontemp, 8)
deshalb sind sie ja auch als var declariert.

EDIT:
Deaktiviere doch einfach mal im VB Sample die schleife dann wirst sehn ob es noch funktioniert.

gruss Emil

bluescreen25 22. Jan 2009 20:19

Re: Hilfe bei Übersetzung VB to Delphi
 
Sieht jetzt so aus:

Delphi-Quellcode:
TFNGetEON            = function(var buf:Single;var len,pi,pty:Integer;ps:String;var ta:Bool;eon:Integer):Boolean;stdcall;

Delphi-Quellcode:
function WGetEON1:String;
var
  aflist1 : array of Single;
  arysize: Integer;
  LoopArr: Integer;
  pseontemp: String;
  ttaeon1 :Bool;
  tptyeon1:Integer;
  tpieon1 :Integer;
 
begin
    Result := '';
    SetLength(pseontemp,8);

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

    if GetEON(aflist1[0],arysize,tpieon1,tptyeon1,pseontemp,ttaeon1,0) then
    SetLength(aflist1, arysize-1);
    //For LoopArr := Low(aflist1) To high(aflist1) do
    //Result := floattostr(aflist1[LoopArr]);
End;
Hmm, ich weiss auch net weiter....komisch, bei GetAFList wars mit deinen Änderungen sofort gut !

Gruß, bluescreen

EWeiss 22. Jan 2009 20:23

Re: Hilfe bei Übersetzung VB to Delphi
 
var len,pi,pty ???

Kann sein das die Funktion in VB das nicht aktzeptiert.
Versuche jede Variable seperat zu definieren nicht getrennt durch Komma.

Delphi-Quellcode:
var len:Integer; var pi:Integer; var pty:Integer;
gruss Emil

bluescreen25 22. Jan 2009 20:28

Re: Hilfe bei Übersetzung VB to Delphi
 
Zitat:

Zitat von EWeiss
WVB_GetEon1 = aflist1 sagt dir ob der aufruf Erfolgreich war.
Nicht mehr und nicht weniger.

Er gibt dir also BOOL zurück oder ?
Ist der aufruf erfolgreich dann bekommst du über die 'var' Parameter
die eigenschaften (werte) zurückgeliefert.

Von diesen
Delphi-Quellcode:
    pieon1 = tpieon1 
    ptyeon1 = tptyeon1 
    taeon1 = ttaeon1 
   
    pseon1 = Left(pseontemp, 8)
deshalb sind sie ja auch als var declariert.

EDIT:
Deaktiviere doch einfach mal im VB Sample die schleife dann wirst sehn ob es noch funktioniert.

gruss Emil

Ja OK, das habe ich jetzt verstanden, also hat der VB-Coder hier nur die Vars gefüllt und direkt verwertet.
Die GetEON bringt im array die Frequenzen, sowie in den Vars dazu gehörigige Werte, die man ebenso nutzen kann.

Mein Problem ist leider immer noch der Aufruf...ich bekomme kein True zurück, sondern direkt die exception.....
Ist nicht ganz so leicht, von der Anwendung über eine dll zu einer weiteren zu debuggen....

Gruß, bluescreen

bluescreen25 22. Jan 2009 20:33

Re: Hilfe bei Übersetzung VB to Delphi
 
Zitat:

Zitat von EWeiss
var len,pi,pty ???

Kann sein das die Funktion in VB das nicht aktzeptiert.
Versuche jede Variable seperat zu definieren nicht getrennt durch Komma.

Delphi-Quellcode:
var len:Integer; var pi:Integer; var pty:Integer;
gruss Emil

leider auch net...übrigens die dll ist in C++ geschrieben, darin sind extra für VB einige exports gemacht worden.
Den Source habe ich auch.

Delphi-Quellcode:
USBRADIO_API bool __stdcall      VB_GetEon(float* ary, int* arysize, unsigned int *pi, short *pty, char ps[9], bool *ta, unsigned int eon);
Der VB-Code ist auch nur ein Wrapper...

Gruß, bluescreen

EWeiss 22. Jan 2009 20:39

Re: Hilfe bei Übersetzung VB to Delphi
 
Hmmm ...
Delphi-Quellcode:
if GetEON(aflist1[0],arysize,tpieon1,tptyeon1,pseontemp,ttaeon1,0) then
Wenn ich das richtig interpretiere sollte Result dir den wert von aflist1[0] zurückgeben wenn der aufruf GetEON = True erfolgreich war.
Plus der werte die in tpieon1 abhängig von aflist1[0] enthalten sind.

Weis nicht ob in der DLL result = @aflist1 als VarPtr deklariert ist.
Das kannst du nur testen.

EDIT:
Davon abgesehen du deklarierst überall Boolean ..
Warum ? Bool wie in c++ das reicht.
Nur in VB benötigt man 2 Byte und da gibt es kein Bool.

gruss Emil

bluescreen25 22. Jan 2009 20:53

Re: Hilfe bei Übersetzung VB to Delphi
 
Delphi-Quellcode:
USBRADIO_API bool __stdcall      VB_GetEon(float* ary, int* arysize, unsigned int *pi, short * pty, char ps[9], bool *ta, unsigned int eon)
{
   if(eon < 0 || eon > 4)
      return false;
   
   RDSData rds_data;
   std::map<double, double>::iterator iter;
   std::vector<rds_EON_struct>::iterator EONMapIter;
   int i;
   if (fmRadioDevice.GetRDSData(&rds_data))
   {
      for(EONMapIter = rds_data.EONMap.begin(), i = 0; EONMapIter != rds_data.EONMap.end(); EONMapIter++, i++)
         if( i == eon)
            break;
      if(EONMapIter != rds_data.EONMap.end())
      {
         if(EONMapIter->m_mappedFreq2.size() > 0)
         {
            int cnt = 0;
            for(iter = EONMapIter->m_mappedFreq2.begin(); iter != EONMapIter->m_mappedFreq2.end(); iter++)
            {
               ary[cnt] = iter->first;
               cnt++;
               if (cnt > *arysize - 1)
                  break;
            }
            *arysize = EONMapIter->m_mappedFreq2.size();
         }
         *pi = EONMapIter->m_pi;
         *pty = EONMapIter->m_pty_ON;
         EONMapIter->m_psText = "";
         for(i = 0; i < 8; i++)
         {
            if(!EONMapIter->m_ps[i])
               EONMapIter->m_ps[i] = ' ';
            EONMapIter->m_psText += EONMapIter->m_ps[i];
         }
         strncpy(ps,EONMapIter->m_psText.c_str(),strlen(EONMapIter->m_psText.c_str()));
         *ta = EONMapIter->m_ta_ON;
      }
   }
   return true;
}
hmm kannst du etwas erkennen ?

EWeiss 22. Jan 2009 20:58

Re: Hilfe bei Übersetzung VB to Delphi
 
Zitat:

hmm kannst du etwas erkennen ?
Leider nicht sorry.

gruss Emil

bluescreen25 22. Jan 2009 21:14

Re: Hilfe bei Übersetzung VB to Delphi
 
Zitat:

Zitat von EWeiss
Zitat:

hmm kannst du etwas erkennen ?
Leider nicht sorry.

gruss Emil

trotzdem vielen dank..!


die zugriffsverletung ist bei adresse 00000000000 sowie beim lesen an adresse 00000000000

gruß, bluescreen

mkinzler 22. Jan 2009 21:15

Re: Hilfe bei Übersetzung VB to Delphi
 
Ein Zeiger scheint Nil zu sein

bluescreen25 22. Jan 2009 21:24

Re: Hilfe bei Übersetzung VB to Delphi
 
Zitat:

Zitat von mkinzler
Ein Zeiger scheint Nil zu sein

was kann ich prüfen ? weiss nicht mehr weiter....

gruß, bluescreen

EWeiss 22. Jan 2009 21:47

Re: Hilfe bei Übersetzung VB to Delphi
 
Zitat:

Zitat von bluescreen25
Zitat:

Zitat von mkinzler
Ein Zeiger scheint Nil zu sein

was kann ich prüfen ? weiss nicht mehr weiter....

gruß, bluescreen

Ich kann dir nur nochmal sagen das du das alles nicht brauchst!

Delphi-Quellcode:
function WGetEON1:String;
var
  aflist1:  array of Single;
  arysize:  Integer;
  LoopArr:  Integer;
  pseontemp: String;
  ttaeon1:  Bool;
  tptyeon1: Integer;
  tpieon1 : Integer;
begin
    Result := '';
    SetLength(pseontemp,8);

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

    if GetEON(aflist1[0], arysize, tpieon1, tptyeon1, pseontemp, ttaeon1, 0) then
    begin
      //SetLength(aflist1, arysize-1);
      //For LoopArr := Low(aflist1) To high(aflist1) do
      Result := aflist1;
   
      pieon1 := tpieon1;
      ptyeon1 := tptyeon1;
      taeon1 := ttaeon1;
    // usw..
    end;
End;

bluescreen25 22. Jan 2009 22:04

Re: Hilfe bei Übersetzung VB to Delphi
 
das mag sein, aber das löst leider mein Problem nicht.

aflist1 ohne einen Index kann ich aber eh nicht auf einen String übergeben. Da meckert der Compiler.....
Die exception kommt aber schon beim Aufruf der GetEON-Funktion, den Rest hatte ich ausgeklammert....
Es muss erstmal laufen, dann will ich die Werteauswertung noch überarbeiten...


Gruß, bluescreen

EWeiss 22. Jan 2009 22:22

Re: Hilfe bei Übersetzung VB to Delphi
 
Hab dir doch nen link gegeben prüfe anhand der Liste nochmal deine Declarationen

Long ist nicht Integer sondern 'LongInt'
Auch wenn das nicht hilft ist aber die richtige umsetzung. ;)

gruss Emil

bluescreen25 23. Jan 2009 05:40

Re: Hilfe bei Übersetzung VB to Delphi
 
Zitat:

Zitat von EWeiss
Hab dir doch nen link gegeben prüfe anhand der Liste nochmal deine Declarationen

Long ist nicht Integer sondern 'LongInt'
Auch wenn das nicht hilft ist aber die richtige umsetzung. ;)

gruss Emil

ja das werde ich machen, danke !

Gruß, bluescreen


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:06 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