AGB  ·  Datenschutz  ·  Impressum  







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

CD brennen mit XE-7 -> DLL erstellen

Ein Thema von mm1256 · begonnen am 27. Nov 2014 · letzter Beitrag vom 27. Nov 2014
Antwort Antwort
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.233 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: CD brennen mit XE-7 -> DLL erstellen

  Alt 27. Nov 2014, 10:34
Bietet Windows nicht seit XP auch eine Brenn-API?
Siehe: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

Ich glaube so ein Build-In-API wird für viele Komponentenherstellen in diesem Bereich negativ aufs geschäft geschlagen haben.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: CD brennen mit XE-7 -> DLL erstellen

  Alt 27. Nov 2014, 11:33
Hallo Bernhard,

mit deiner Vermutung über die Rentabilität liegst du wahrscheinlich richtig. Übrigens, es ist kein Build-In-Api sondern eine VCL-Komponente, die es auch mit Quellcode für 1.299,- Dollar gibt.

Vielen Dank für den Link. Ich hatte den schon mal im Visier als ich die letzte Version für XE-2 upgedated habe. Kostet ja jedes mal ein paar Euronen.

Habe es dann aber wieder sein lassen, weil ich VB nicht kann, und weil ich auch kein Delphi-Beispiel hierzu fand, was mich durchaus wundert. Es muss nämlich 100%-ig funktionieren, d.h. der Anwender darf gar nicht die Möglichkeit haben, irgend etwas falsch zu machen. Es geht schließlich um seine Daten (Datenbanken). Diese Sicherheit sehe ich bei dem VB-Script irgendwie nicht. Man müsste es halt mal ausprobieren.
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: CD brennen mit XE-7 -> DLL erstellen

  Alt 27. Nov 2014, 11:57
Zitat:
For an example that burns a disc image, see VBScript example.
Beispielcode in VBScript ... man kann diese API natürlich auch von Delphi aus ansprechen.

Delphi-Beispielcode: http://pblog.ru/?p=333

z.B. Bei Google suchendelphi IFileSystemImage
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.233 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: CD brennen mit XE-7 -> DLL erstellen

  Alt 27. Nov 2014, 12:27
mit deiner Vermutung über die Rentabilität liegst du wahrscheinlich richtig. Übrigens, es ist kein Build-In-Api sondern eine VCL-Komponente, die es auch mit Quellcode für 1.299,- Dollar gibt.

Vielen Dank für den Link. Ich hatte den schon mal im Visier als ich die letzte Version für XE-2 upgedated habe. Kostet ja jedes mal ein paar Euronen.
Die Kompo kenne ich. Hatten wir auch mal im Einsatz. Irgendwann hat der Kunde auf eine Brennstation mit Spezieller API umgestellt und wir musstn diese Unterstütztn.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

AW: CD brennen mit XE-7 -> DLL erstellen

  Alt 27. Nov 2014, 14:06
Hallo,

vielleicht nochmals zurück zu meiner eigentlichen Frage bzw. Problem.

Auszug aus der DLL:

Delphi-Quellcode:

var
  CdBurner : TMCDBurnerPro;

{------------------------------------------------------------------------------}
{- Initialisierung des Burner's -----------------------------------------------}
{- aClientHandle: Handle des aufrufenden Formulares ---------------------------}
{- aOwner: Aufrufendes Formular/Application -----------------------------------}
{- aOnWriteDoneProc: Wird aufgerufen wenn der Brennvorgang abgeschlossen ist --}
{------------------------------------------------------------------------------}
function Burner_Open(aClientHandle: THandle; aOwner: TComponent;
                     aOnWriteDoneProc: TOnWriteDoneProc): boolean;
var
  i: integer;
begin
  Result := false;
  ClientHandle := aClientHandle;
  CdBurned := false;
  try
    CdBurner := TMCDBurnerPro.Create(aOwner); ==> hier knallt es schon: Zugriffsverletztung beim lesen von Adresse 00000081
    CDBurner.InitializeASPI(False);
    CDBurner.OnWriteDone := aOnWriteDoneProc;
    Result := Burner_AutoSelect;
  except
    on E:Exception do Burner_SendMessage(E.Message);
  end;
end;
Ich vermute mal, dass die Kompo im Constructor irgendwie feststellt, dass sie nicht auf einem Formular liegt. Ist das möglich?
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#6

AW: CD brennen mit XE-7 -> DLL erstellen

  Alt 27. Nov 2014, 14:18
Du kannst nicht über Modulgrenzen hinweg Objektinstanzen übergeben. Wozu brauchst Du denn den Owner? Du kannst doch genausogut nil als Owner setzen, nur musst Du die Komponente dann am Ende selbst wieder freigeben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

AW: CD brennen mit XE-7 -> DLL erstellen

  Alt 27. Nov 2014, 14:48
Du kannst nicht über Modulgrenzen hinweg Objektinstanzen übergeben. Wozu brauchst Du denn den Owner? Du kannst doch genausogut nil als Owner setzen, nur musst Du die Komponente dann am Ende selbst wieder freigeben.
Vielen Dank, das war's was mir gefehlt hat. Die Komponente gebe ich natürlich in der DLL wieder frei.

Jetzt dreht sich schon mal der Brenner aber mit Brennen isses vorerst noch nix aber das kommt auch noch
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: CD brennen mit XE-7 -> DLL erstellen

  Alt 27. Nov 2014, 14:21
Schnittstelle EXE <-> DLL :
  • nichts was die Speicherverwaltung vom Delphi benutzt (außer man verwendet ShareMem u.ä.)
  • niemals irgendwelche Delphi-Objekt-Instanzen übergeben
    allemein nichts übergeben, was die RTTI benutzt
  • nichts aus der VCL (keine TComponent, maximal HWND ala MyComponent.Handle)
  • ...
  • Interfaces (IInterface) sind erlaubt (keine direkten Objekte)
  • ShortString, PChar, PAnsiChar, PWideChar oder WideString sind erlaubt (keine String, AnsiString, UnicodeString usw.)

Wäre alles erlaubt, wenn man Packages nutzt, aber das würde deinem Vorhaben entgegen stehen.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (27. Nov 2014 um 14:24 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:40 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