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 3 von 4     123 4      
bluescreen25

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

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 21:19
Sieht jetzt so aus:

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
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#22

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 21:23
var len,pi,pty ???

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

var len:Integer; var pi:Integer; var pty:Integer; gruss Emil
  Mit Zitat antworten Zitat
bluescreen25

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

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 21:28
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
...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
 
#24

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 21:33
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.

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.

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
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#25

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 21:39
Hmmm ...
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
  Mit Zitat antworten Zitat
bluescreen25

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

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 21:53
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 ?
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#27

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 21:58
Zitat:
hmm kannst du etwas erkennen ?
Leider nicht sorry.

gruss Emil
  Mit Zitat antworten Zitat
bluescreen25

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

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 22:14
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
...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
 
#29

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 22:15
Ein Zeiger scheint Nil zu sein
Markus Kinzler
  Mit Zitat antworten Zitat
bluescreen25

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

Re: Hilfe bei Übersetzung VB to Delphi

  Alt 22. Jan 2009, 22:24
Zitat von mkinzler:
Ein Zeiger scheint Nil zu sein
was kann ich prüfen ? weiss nicht mehr weiter....

gruß, bluescreen
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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