Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#5

Re: Neustrukturierung einer DLL

  Alt 5. Jul 2007, 13:40
Hi Robert
Zitat:
Also ohne das Umschreiben der DLL geht es nicht. Das API enthaelt sowieso so viele kleine Unsauberkeiten und Designschwaechen das man es neu entwerfen sollte.
Bitte benenne mir einige damit ich es in zukunft besser machen kann
Viele Leute benutzen die DLL und Probleme diesbezüglich hat mir bisher niemand mitgeteilt.

Egal unter welcher Sprache sie benutzt wurde.
#C_NET,VB_NET,Delphi,Vb,C,C++,MSVC

Zitat:
Offensichtlich erstellt BASS_SONIQUEVIS_CreateFakeSoniqueWnd ein nur in der DLL erreichbares Fenster. Das kann man doch einfach immer erstellen und spart sich die API-Funktionen.
Nein ein Fenster welches dem jeweiligen Plugin zugewiesen wird das es für seine eigenschaften benötigt.
Wenn es immer erstellt wird funktionieren einige andere Plugins nicht mehr.
Außerdem stellt deine Anwendung im normalfall das Window für Sonique dar es wird dann nur umgelenkt und den Plugins wird vorgegaukelt das es Sonique ist.
Zitat:
Ich meinte
Delphi-Quellcode:
const
  BassVisDllName = 'bass_vis.dll';
Ja ok wie man es letztendlich benennt ist egal
Aber warum deklarierst du den Wert nicht ?
'bass_vis.dll kann ja vieles sein denke nach außen hin sollte ich ihm schon einen wert übergeben oder?

Zitat:
Jedesmal wenn man 'bass_vis.dll' direkt benutzt wird der String im EXE abgelegt. Pro Funktionsdeklaration gibt es daher eine Kopie des Strings in der EXE. Das kann leicht ausarten
Ok das kann ich nachvollziehen.

Wie meinst du das mit SuperSet wie sollte das aussehen.

das *.h File sieht so aus und wie gesagt bisher keine fehler gemeldet!
Code:
#ifndef BASSVIS_H
#define BASSVIS_H

#include <wtypes.h>

#ifdef __cplusplus
extern "C" {
#endif

#ifndef BASSVISDEF
#define BASSVISDEF(f) WINAPI f
#endif

typedef DWORD HVIS;
typedef unsigned __int64 QWORD;


// BASS_SONIQUEVIS_CreateVis flags
#define BASS_VIS_NOINIT            1

// BASS_SONIQUEVIS_SetConfig flags
#define BASS_SONIQUEVIS_CONFIG_FFTAMP         1
#define BASS_SONIQUEVIS_CONFIG_FFT_SKIPCOUNT   2 // Skip count range is from 0 to 3 (because of limited FFT request size)
#define BASS_SONIQUEVIS_CONFIG_WAVE_SKIPCOUNT  3 // Skip count range is from 0 to (...) try it out, whenever Bass crashes or does not return enough sample data
#define BASS_SONIQUEVIS_CONFIG_SLOWFADE           4 // Dim light colors to less than half, then slowly fade them out

// BASS_WINAMP_SetConfig flags
#define BASS_WINAMPVIS_CONFIG_FFTAMP   1

// BASS_WMPVIS_SetConfig flags
#define BASS_WMPVIS_CONFIG_FFTAMP      1

// Bass FFT Amplification values
#define BASS_VIS_FFTAMP_NORMAL         1
#define BASS_VIS_FFTAMP_HIGH         2
#define BASS_VIS_FFTAMP_HIGHER         3
#define BASS_VIS_FFTAMP_HIGHEST         4

// BASS_VIS_FindPlugin flags
#define BASS_VIS_FIND_SONIQUE         1
#define BASS_VIS_FIND_WINAMP         2
#define BASS_VIS_FIND_RECURSIVE         4

// return value type
#define BASS_VIS_FIND_COMMALIST         8
  // Delphi's comma list style (item1,item2,"item 3",item4,"item with space")
  // the list ends with single NULL character


HVIS BASSVISDEF(BASS_SONIQUEVIS_CreateVis)(char *f, char *visconfig, DWORD flags, DWORD w, DWORD h);
BOOL BASSVISDEF(BASS_SONIQUEVIS_SetFullScreen)(HVIS handle, DWORD SourceHandle, DWORD DestHandle, DWORD SourceLeft, DWORD SourceTop, DWORD SourceWidth, DWORD SourceHeight, BOOL FullScreen, DWORD FullScreeWidth, DWORD FullScreenHeight);
BOOL BASSVISDEF(BASS_SONIQUEVIS_Render)(HVIS handle, DWORD channel, HDC canvas);
BOOL BASSVISDEF(BASS_SONIQUEVIS_Render2)(HVIS handle, void *data, void *fft, HDC canvas, DWORD flags, DWORD pos);
BOOL BASSVISDEF(BASS_SONIQUEVIS_Free)(HVIS handle);
BOOL BASSVISDEF(BASS_SONIQUEVIS_Clicked)(HVIS handle, DWORD x, DWORD y);
BOOL BASSVISDEF(BASS_SONIQUEVIS_Resize)(HVIS handle, DWORD nw, DWORD nh);
DWORD BASSVISDEF(BASS_SONIQUEVIS_GetConfig)(DWORD option);
char* BASSVISDEF(BASS_SONIQUEVIS_GetName)(HVIS handle);
void BASSVISDEF(BASS_SONIQUEVIS_CreateFakeSoniqueWnd)();
void BASSVISDEF(BASS_SONIQUEVIS_DestroyFakeSoniqueWnd)();
void BASSVISDEF(BASS_SONIQUEVIS_SetConfig)(DWORD option, DWORD Value);


HVIS BASSVISDEF(BASS_WINAMPVIS_ExecuteVis)(char *PluginName, int moduleNum, BOOL ownHdc, BOOL ownHdcW2);
HVIS BASSVISDEF(BASS_WINAMPVIS_GetHandle)(char *PluginName);
BOOL BASSVISDEF(BASS_WINAMPVIS_RenderStream)(DWORD StreamHandle);
BOOL BASSVISDEF(BASS_WINAMPVIS_Free)(HVIS handle);
BOOL BASSVISDEF(BASS_WINAMPVIS_Config)(HVIS handle, int VismodNum);
BOOL BASSVISDEF(BASS_WINAMPVIS_SetChanInfo)(HVIS handle, char* title, char* filename, DWORD pos, DWORD len, DWORD plistpos, DWORD pllength);
BOOL BASSVISDEF(BASS_WINAMPVIS_SetChanMPEGInfo)(HVIS handle, int SampleRate, int BitRate, DWORD Duration, int Channels);
BOOL BASSVISDEF(BASS_WINAMPVIS_StartRecord)(DWORD SampleRate, int Channels);
BOOL BASSVISDEF(BASS_WINAMPVIS_Init)(DWORD AppHandle, DWORD WinHandle);
BOOL BASSVISDEF(BASS_WINAMPVIS_Config)(HVIS handle, int VismodNum);
BOOL BASSVISDEF(BASS_WINAMPVIS_IsFree)();
DWORD BASSVISDEF(BASS_WINAMPVIS_GetAmpHwnd)();
DWORD BASSVISDEF(BASS_WINAMPVIS_GetGenHwnd)();
DWORD BASSVISDEF(BASS_WINAMPVIS_GetConfig)(DWORD option);
char* BASSVISDEF(BASS_WINAMPVIS_GetModuleName)(HVIS handle, int VismodNum);
char* BASSVISDEF(BASS_WINAMPVIS_GetName)(HVIS handle);
int BASSVISDEF(BASS_WINAMPVIS_GetNumModules)(char *PluginName);
void BASSVISDEF(BASS_WINAMPVIS_SetGenHwndParent)(DWORD hWindow, DWORD hContainer, int x, int y, int width, int height);
void BASSVISDEF(BASS_WINAMPVIS_RecordFree)();
void BASSVISDEF(BASS_WINAMPVIS_Quit)();
void BASSVISDEF(BASS_WINAMPVIS_SetConfig)(DWORD option, DWORD value);
void BASSVISDEF(BASS_WINAMPVIS_Play)(DWORD handle);
void BASSVISDEF(BASS_WINAMPVIS_Pause)(DWORD handle);
void BASSVISDEF(BASS_WINAMPVIS_Stop)(DWORD handle);
void BASSVISDEF(BASS_WINAMPVIS_SetPlaylistPos)(handle: DWORD, int PlPos);
DWORD BASSVISDEF(BASS_WINAMPVIS_GetPlaylistPos)(DWORD handle);
DWORD BASSVISDEF(BASS_WINAMPVIS_IsPlaying)(DWORD handle);

HVIS BASSVISDEF(BASS_WMPVIS_ExecuteVis)(int PlgListIndex, int PresetIndex, DWORD VisWinhandle, int Left, int Top, int width, int heigth);
int BASSVISDEF(BASS_WMPVIS_GetPresetCount)(int PlgListIndex);
char* BASSVISDEF(BASS_WMPVIS_GetPresetTitle)(int PlgListIndex, int NumPresets);
char* BASSVISDEF(BASS_WMPVIS_GetPluginDescription)();
char* BASSVISDEF(BASS_WMPVIS_FindPlugins)();
DWORD BASSVISDEF(BASS_WMPVIS_GetConfig)(DWORD option);
BOOL BASSVISDEF(BASS_WMPVIS_Init)(DWORD AppHandle, DWORD WinHandle);
BOOL BASSVISDEF(BASS_WMPVIS_Free)(HVIS handle);
BOOL BASSVISDEF(BASS_WMPVIS_IsFree)();
BOOL BASSVISDEF(BASS_WMPVIS_RenderStream)(DWORD StreamHandle);
BOOL BASSVISDEF(BASS_WMPVIS_StartRecord)(DWORD SampleRate, int Channels);
BOOL BASSVISDEF(BASS_WMPVIS_SetFullScreen)(DWORD SourceHandle, DWORD DestHandle, DWORD SourceLeft, DWORD SourceTop, DWORD SourceWidth, DWORD SourceHeight, BOOL FullScreen, DWORD FullScreeWidth, DWORD FullScreenHeight);
void BASSVISDEF(BASS_WMPVIS_SetMediaInfo)(int Channels, int SampleRate, Title: char);
void BASSVISDEF(BASS_WMPVIS_SetCurrentPreset)(int PresetIndex);
void BASSVISDEF(BASS_WMPVIS_Config)(DWORD hwndOwner);
void BASSVISDEF(BASS_WMPVIS_SetConfig)(DWORD option, DWORD value);
void BASSVISDEF(BASS_WMPVIS_RecordFree)();
void BASSVISDEF(BASS_WMPVIS_Play)();
void BASSVISDEF(BASS_WMPVIS_Pause)();
void BASSVISDEF(BASS_WMPVIS_Stop)();
void BASSVISDEF(BASS_WMPVIS_Quit)();

char* BASSVISDEF(BASS_VIS_FindPlugins)(char *vispath, DWORD flags);

#ifdef __cplusplus
}
#endif

#endif
gruss Emil
  Mit Zitat antworten Zitat