AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bass.dll dynamisch zur laufzeit laden

Bass.dll dynamisch zur laufzeit laden

Ein Thema von TeTSuO · begonnen am 17. Mär 2005 · letzter Beitrag vom 20. Sep 2009
Antwort Antwort
Benutzerbild von TeTSuO
TeTSuO

Registriert seit: 26. Feb 2005
Ort: Ludwigshafen am Rhein
60 Beiträge
 
Delphi 7 Enterprise
 
#1

Bass.dll dynamisch zur laufzeit laden

  Alt 17. Mär 2005, 07:24
Hallo Erstma

Ich habe die Bass.DLL mit in das kompilat eingebunden. zur laufzeit wird es auch entpackt wenn ich aber versuche die DLL mit der Unit Bass_dynamic zu Laden kommt ne Fehlermeldung das er die Datei nicht Laden konnte.

Die Unit ist für Version 2.0 von der Bass.dll ich habe aber Version 2.1. Kann es vielleicht daran liegen das er die Proceduren falls addressiert

Mein Quelltext :

Delphi-Quellcode:
Var hFindRes: HRSRC;
    hLoadres: HGLOBAL;
    hLockRes: Pointer;
    FS: TFileStream;
    TmpDir: String;
    N: Integer;
    FPlayer: TBassInstance;

Begin
 // DLLName für Bass_Dynamic
 BassDLL:='SNDHLD.TMP'+#0;
 // Tempverzeichnis ermitteln
 SetLength(TmpDir,MAX_Path);
 N:=GetTempPath(MAX_Path,PChar(TmpDir));
 SetLength(TmpDir,N);
 // DLL Pfad für Bass_Dynamic setzen
 Bass_Path:=CheckDir(TmpDir);
 // Ressource laden
 hFindRes:=FindResource(hInstance,MAKEINTRESOURCE(1000),'APPDATA');
 hLoadRes:=LoadResource(hInstance,hFindRes);
 hLockRes:=LockResource(hLoadRes);
 // Ressource speichern
 FS:=TFileStream.Create(Bass_Path+BassDll,fmCreate);
 FS.Write(hLockRes^,95288);FS.Free;
 
 FPlayer:=hBassCD;
 LoadBassDLL(FPlayer);
End;
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: Bass.dll dynamisch zur laufzeit laden

  Alt 17. Mär 2005, 08:39
Tja. Das Temporäre verzeichnis wird nicht in PATH drin stehen, dementsprechend sucht er auch nicht dort nach der Bass datei und findet sie nicht. Zumal er eine Bass.DLL sucht und du die anders benennst. Du musst also LoadBassDLL ändern, so das der korrekte Dateiname angegeben wird, oder du entpackst die Datei ins aktuelle verzeichnis und mit dem richtigen Dateinamen.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von TeTSuO
TeTSuO

Registriert seit: 26. Feb 2005
Ort: Ludwigshafen am Rhein
60 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Bass.dll dynamisch zur laufzeit laden

  Alt 17. Mär 2005, 19:44
Ich habe doch Pfad und Dateiname für die Bass_dynamic Unit geändert, steht doch im Quelltext

Delphi-Quellcode:
    BassDLL:='SNDHLD.TMP'+#0;
    Bass_Path:=CheckDir(TmpDir);
Diese beiden Variablen benutzt die Unit um die DLL dynamisch zu laden.
Vielleicht hat jemand ja nen Link für ne neue Version der Unit.
  Mit Zitat antworten Zitat
noch_ein_hannes

Registriert seit: 18. Sep 2003
130 Beiträge
 
#4

Re: Bass.dll dynamisch zur laufzeit laden

  Alt 17. Mär 2005, 20:35
Hi,

Es gibt es noch ne andere Möglichkeit eine DLL ins Projekt zu bekommen. Schau Dir mal den Weg mit DLLTools an. Ich weiss allerdings nicht, ob es auch bei der Bass.dll klappt. Falls ja, wäre ich über eine Nachricht sehr dankbar.

grüsse,
Hannes
- everything is possible -
  Mit Zitat antworten Zitat
Benutzerbild von TeTSuO
TeTSuO

Registriert seit: 26. Feb 2005
Ort: Ludwigshafen am Rhein
60 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Bass.dll dynamisch zur laufzeit laden

  Alt 17. Mär 2005, 21:47
Das ist echt Super. Danke für den Tipp mit DLLTOOLS!

War zwar ein bisschen Arbeit nötig aber das Resultat ist, ich habe jetzt alles was ich wollte !

BASS.Dll ist in EXE integriert und ich habe jetzt die Unit Bass_Dynamic von Version 2.1!!!
Wer auch die DLL ohne irgendetwas im Quelltext zu ändern (außer USES) in die EXE einbinden will kann sich die Datei runterladen.

im Quelltext folgendes ändern

Vorher

 Uses ..., BASS, ... Nachher

 Uses ..., BASS_Dynamic, ... und dann kannste auch die DLL löschen !
Angehängte Dateien
Dateityp: rar bass_dynamic_189.rar (114,0 KB, 85x aufgerufen)
  Mit Zitat antworten Zitat
noch_ein_hannes

Registriert seit: 18. Sep 2003
130 Beiträge
 
#6

Re: Bass.dll dynamisch zur laufzeit laden

  Alt 18. Mär 2005, 00:34
COOL!
... und ich danke für die Unit, denn mein Versuch die Bass.dll damit umzusetzen hatte damals irgendwie nicht richtig geklappt ... ich werde es mir morgen mal anschauen!
- everything is possible -
  Mit Zitat antworten Zitat
master87

Registriert seit: 17. Sep 2009
3 Beiträge
 
#7

Re: Bass.dll dynamisch zur laufzeit laden

  Alt 20. Sep 2009, 13:05
@ TeTSuO Deine Bass_Dynamic functioniert nicht richtig da einige functionen fehlen.Ich habe jetzt mal die neue Bass.dll geholt und deren unit Dynamic_Bass; alls vorlage genommen ich hoffe das sie so richtig ist.
Sie wird unter uses alls bass eingefügt kann aber verändert werden durch ersetzen dieser zeile:
Delphi-Quellcode:
UNIT bass;
ersetzen durch
UNIT Dynamic_Bass;
Dan kann sie unter uses auch alls Dynamic_Bass benutzt werden.
Falls irgend welche fehler drin sein sollten könntet ihr sie bitte korigiren und neu hier hochladen.
Angehängte Dateien
Dateityp: pas bass_184.pas (445,8 KB, 28x aufgerufen)
  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 00:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf