AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

DLL - Probs mit Strings

Ein Thema von TERWI · begonnen am 3. Okt 2011 · letzter Beitrag vom 3. Okt 2011
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.726 Beiträge
 
Delphi 12 Athens
 
#6

AW: DLL - Probs mit Strings

  Alt 3. Okt 2011, 11:23
Dennoch solltest du es mal mit stdcall versuchen.
Vom Aufruf her sind die sich gleich. Nur das Aufräumen der Parameter ist anders.

Delphi-Quellcode:
type
  {$MINENUMSIZE 2}
  TYPE_FRONT_END = (
    TYPE_FE_UNKNOWN, // not set
    TYPE_FE_DVB_C, // DVB-C
    TYPE_FE_DVB_S, // DVB-S
    TYPE_FE_DVB_S2, // DVB-S2
    TYPE_FE_DVB_T, // DVB-T
    TYPE_FE_ATSC, // ATSC
    TYPE_FE_DSS, // DSS
    TYPE_FE_DVB_CT, // DVB-C and DVB-T
    TYPE_FE_DVB_S2_PREM); // TT-premium with Dual DVB-S2 and digital capture
  {$MINENUMSIZE 1}  // Standardwert

  TS_FilterNames = {packed} record
    szTunerFilterName: array[0..MAX_PATH-1] of AnsiChar; // oder [1..MAX_PATH];
    szTunerFilterName2: array[0..MAX_PATH-1] of AnsiChar;
    szCaptureFilterName: array[0..MAX_PATH-1] of AnsiChar;
    szAnlgTunerFilterName: array[0..MAX_PATH-1] of AnsiChar;
    szAnlgCaptureFilterName: array[0..MAX_PATH-1] of AnsiChar;
    szSTBCaptureFilterName: array[0..MAX_PATH-1] of AnsiChar;
    szProductName: array[0..MAX_PATH-1] of AnsiChar;
    FeType: TYPE_FRONT_END;
  end;

function bdaapiGetDevNameAndFEType(hOpen: THandle; var FilterNames: TS_FilterNames): HRESULT; stdcall;
Das PACKED hat auf die Char/AnsiChar-Arrays keine Wirkung, da diese sowieso nur aus einzelnen Bytes bestehen und dadurch praktisch nicht ausgerichtet werden.
(Sie werden an den Bytegrenzen ausgerichtet, was somit dem PACKED entspricht)

Aber auf FeType dürfte PACKED eine wirkung zeigen, jedenfalls bei der falschen Arraylänge, da 7 Byte mehr (1 je Array), was auf vielfache von 2 (Sizeof(TYPE_FRONT_END) ), also 8 aufgerundet wird und somit diesen Wert verschiebt.


Wie bist du eigentlich von HANDLE auf HWND gekommen?
Ist das denn wirklich ein Fenster-Handle?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz