|
Antwort |
EWeiss
(Gast)
n/a Beiträge |
#3
Zitat von Die Muhkuh:
Ja
Habe hier ein Problem. Ich habe in VB.NET eine Datei erstellt die läuft in der Developer Umgebung wenn ich sie debugge einwandfrei Sobald ich sie aber als eigenständige EXE laufen lasse stürzt die Anwendung ab. Nur in Win7 64BIT auf x86 Systemen läuft es einwandfrei. Bin mir jetzt nicht sicher ob es an den Parametern liegt die ich NET übergebe.
Delphi-Quellcode:
und VB.NET
Delphi..
{' UNIT BassVis.pas '--------------------------- BassVis API Module ----------------------------- ' BassVis ADD-ON for Bass Audio Library ' Copyright © 2006-2007 BrewIdeas@Emil Weiss, All Rights Reserved ' ' Author(s) of this Unit: Emil Weiss ' ' Code was written in and formatted for 10pt Courier New '----------------------------------------------------------------------------} unit BassVis; interface uses Windows; type HVIS = DWORD; QWORD = Int64; const dllfile = 'bass_vis.dll'; //filename of the DLL // BASS_SONIQUEVIS_CreateVis flags BASS_VIS_NOINIT = 1; // Config Flags BASS_VIS_CONFIG_FFTAMP = 1; BASS_SONIQUEVIS_CONFIG_FFT_SKIPCOUNT = 2; // Skip count range is from 0 to 3 (because of limited FFT request size) 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 BASS_SONIQUEVIS_CONFIG_SLOWFADE = 4; // Dim light colors to less than half, then slowly fade them out BASS_SONIQUEVIS_CONFIG_RENDERTIMING = 5; // RenderTiming default = 16 ms (min 10) BASS_SONIQUEVIS_CONFIG_USESLOWFADE = 6; // use VideoProc or not , 0/off 1/on // BASS_VIS_FindPlugin flags BASS_VIS_FIND_RECURSIVE = 5; //Plugin arten BASSVISKIND_NONE = 0; // keins aktiv BASSVISKIND_WINAMP = 1; // Winamp BASSVISKIND_SONIQUE = 2; // Sonique BASSVISKIND_WMP = 3; // WMP BASSVISKIND_BASSBOX = 4; // BassBox BASSVISKIND_AIMP2 = 5; // Aimp2 type TBASSVIS_KIND_T = integer; PBASSVIS_PARAM = ^TBASSVIS_PARAM; TBASSVIS_PARAM = record VisHandle : HVIS; // VisHandle VisGenWinHandle : HWND; // General Vis Window Handle W5 Kind : TBASSVIS_KIND_T; // Aktive Plugin Art end; //Definition der Records für die variablen Parameter bei Create bzw. Execute //WMP: Handle des Fensters braucht nicht definiert werden, da es bereits beim init mitgegeben wird PBASSVIS_EXEC = ^TBASSVIS_EXEC; TBASSVIS_EXEC = record Pluginfile : PAnsiChar; // Dateiname des Plugins // für Sonique, Winamp, BassBox AMP_UseOwnW1 : DWORD; // Flag für Winamp (ownHDC) AMP_UseOwnW2 : DWORD; // Flag für Winamp (ownHDCW2) AMP_Moduleindex : DWORD; // Modul-index für Winamp SON_PaintHandle : HDC; // Painthandle für Sonique SON_ConfigFile : PAnsiChar; // Dateiname der Konfiguration für Sonique SON_Flags : DWORD; // Flags für Sonique WMP_PluginIndex : integer; // Pluginindex für WMP; WMP_PresetIndex : integer; // Presetindex für WMP; WMP_SrcVisHandle : HWND; // ContainerVisHandle für WMP; BB_ParentHandle : HWND; // Parent Windowhandle BB_Flags : DWORD; // Flags für BassBox selbe wie Sonique BB_ShowFPS : BOOL; // Frames pro Sekunde anzeigen BB_ShowPrgBar : BOOL; // Progressbar anzeigen AIMP_PaintHandle : HDC; // Painthandle für Aimp2 AIMP_Flags : DWORD; // Flags für Aimp2 Width, Height : integer; // Fensterhöhe und Breite Left, Top : integer; // Left und Top; end; PBASSVIS_INFO = ^TBASSVIS_INFO; TBASSVIS_INFO = record SongTitle : PAnsiChar; // Titel mit vorstehener TitelNr ('1. ') Songfile : PAnsiChar; // SongTitel incl. Pfad pos : DWORD; // 1000 * Aktuelle Position im Stream len : DWORD; // Stream länge PlaylistPos : DWORD; // Playlist Position Playlistlen : DWORD; // Playlist einträge SampleRate : integer; // SämpleRate BitRate : integer; // BitRate Duration : DWORD; // abgelaufen Zeit Channels : integer; // Kanäle default 2 (stereo) end; TPlayState = (psError = 99, psStop = 0, psPlay = 1, psIsPlaying = 2, psPause= 3, psPrevTitle = 4, psNextTitle = 5, psSetPlaylistTitle = 6, psGetPlaylistTitlePos = 7, psSetPlaylistPos = 8, psGetSelectedTitlePos = 9, psPlaylistClear = 10, psAddPlaylistTitle = 11); TBASSVIS_STATECALLBACK = procedure(NewState:TPlayState); stdcall; function BASSVIS_Init(Kind: TBASSVIS_KIND_T; AppHandle: HWND; WinHandle: HWND ): BOOL; stdcall; external dllfile; function BASSVIS_FindPlugins(Kind: TBASSVIS_KIND_T; PluginPath: PAnsiChar; Searchflags: DWORD; delimiter : AnsiChar = ',' ): PAnsiChar; stdcall; external dllfile; function BASSVIS_GetPluginHandle(Kind: TBASSVIS_KIND_T; Pluginfile: PAnsiChar ): DWORD; stdcall; external dllfile; procedure BASSVIS_ExecutePlugin(Param: PBASSVIS_EXEC; var Base: TBASSVIS_PARAM ); stdcall; external dllfile; function BASSVIS_RenderChannel(Param: PBASSVIS_PARAM; channel: DWORD ): BOOL; stdcall; external dllfile; function BASSVIS_StartRecord(Param: PBASSVIS_PARAM; SampleRate: integer = 44100; Channels: integer = 2 ): BOOL; stdcall; external dllfile; function BASSVIS_Config(Param: PBASSVIS_PARAM; Entry: integer = 0 ): BOOL; stdcall; external dllfile; function BASSVIS_SetInfo(Param: PBASSVIS_PARAM; Infos: PBASSVIS_INFO ): BOOL; stdcall; external dllfile; function BASSVIS_Resize(Param: PBASSVIS_PARAM; Left,Top,Width, Height: DWORD ): BOOL; stdcall; external dllfile; function BASSVIS_SetFullscreen(Param: PBASSVIS_PARAM; SourceHandle, DestHandle: HWND; SourceLeft, SourceTop, SourceWidth, SourceHeight: DWORD; FullScreenFlag: Boolean; FullScreeWidth, FullScreenHeight: DWORD ): BOOL; stdcall; external dllfile; function BASSVIS_GetModulePresetCount(Param: PBASSVIS_PARAM; PluginName: PAnsiChar ): integer; stdcall; external dllfile; function BASSVIS_GetModulePresetName(Param: PBASSVIS_PARAM; index: integer; PluginName: PAnsiChar = nil ): PAnsiChar; stdcall; external dllfile; function BASSVIS_GetModulePresetNameList(param: PBASSVIS_PARAM; Pluginname:PAnsiChar = NIL ):PAnsiChar;stdcall; external dllfile; function BASSVIS_GetOption(Param: PBASSVIS_PARAM; option: integer ): integer; stdcall; external dllfile; function BASSVIS_SetOption(Param: PBASSVIS_PARAM; option: integer; Value: integer ): BOOL; stdcall; external dllfile; function BASSVIS_SetPlayState(Param: PBASSVIS_PARAM; State: TPlayState; Value: integer = -1; Title: PAnsiChar = nil ): integer; stdcall; external dllfile; procedure BASSVIS_SetVisPort(Param: PBASSVIS_PARAM; WindowHandle: HWND; ContainerHandle: HWND; x, y, Width, Height: integer ); stdcall;external dllfile; function BASSVIS_Clicked(Param: PBASSVIS_PARAM; x, y: DWORD ): BOOL; stdcall;external dllfile; function BASSVIS_GetPluginName(Param: PBASSVIS_PARAM): PAnsiChar; stdcall; external dllfile; procedure BASSVIS_Free(Param: PBASSVIS_PARAM; var Base: TBASSVIS_PARAM); stdcall; external dllfile; function BASSVIS_GetVersion: PAnsiChar; stdcall; external dllfile; procedure BASSVIS_Quit(Param: PBASSVIS_PARAM);stdcall; external dllfile; //Spezial für Winamp procedure BASSVIS_WINAMP_SetStateCallback(callback:TBASSVIS_STATECALLBACK);stdcall;external dllfile; procedure BASSVIS_WINAMP_RemoveCallback;stdcall;external dllfile; //Spezial für Sonique function BASSVIS_SONIQUEVIS_RenderToDC(Kind: TBASSVIS_KIND_T; handle: HVIS; channel: DWORD; canvas: HDC): boolean; stdcall; external dllfile; function BASSVIS_SONIQUEVIS_RenderToDC2(Kind: TBASSVIS_KIND_T; handle: HVIS; Data, fft: Pointer; canvas: DWORD; flags, pos: DWORD): boolean; stdcall; external dllfile; //Spezial für WMP function BASSVIS_SetModulePreset(Param: PBASSVIS_PARAM;index: integer): BOOL; stdcall; external dllfile; implementation end.
Code:
Ein Sample Projekt kannst du hier laden. Falls du da mal hineinschauen willst. (VB.NET)
Imports System.Runtime.InteropServices
Module modBassVis 'Module containing the public declares to the BassVis library ' BASS_SONIQUEVIS_CreateVis flags Public Const BASS_VIS_NOINIT As Integer = 1 ' BASS_SONIQUEVIS_SetConfig flags Public Enum BASSVIS_CONFIGFLAGS BASS_CONFIG_FFTAMP = 1 ' FFTConfig for Winamp, Sonique, Wmp BASS_SONIQUEVIS_CONFIG_FFT_SKIPCOUNT = 2 ' Skip count range is from 0 to 3 (because of limited FFT request size) 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 BASS_SONIQUEVIS_CONFIG_SLOWFADE = 4 ' Dim light colors to less than half, then slowly fade them out BASS_SONIQUEVIS_CONFIG_RENDERTIMING = 5 ' RenderTiming default = 16 ms (min 10) BASS_SONIQUEVIS_CONFIG_USESLOWFADE = 6 ' use VideoProc or not , 0/off 1/on End Enum ' BASS_VIS_FindPlugin flags Public Const BASS_VIS_FIND_RECURSIVE As Integer = 4 ' Plugin Kind Public Enum BassVisKind BASSVISKIND_NONE = 0 BASSVISKIND_WINAMP = 1 BASSVISKIND_SONIQUE = 2 BASSVISKIND_WMP = 3 BASSVISKIND_BASSBOX = 4 BASSVISKIND_AIMP2 = 5 End Enum ' Plugin Parameter <StructLayout(LayoutKind.Sequential)> _ Public Structure BASSVIS_PARAM Friend Vishandle As Integer ' VisHandle Friend VisGenWinhandle As Integer ' General Vis Window Handle Friend Kind As BassVisKind ' Plugin Kind (BASSVISKIND_NONE, BASSVISKIND_WINAMP, BASSVISKIND_SONIQUE) End Structure ' Definition der Typen f�r die variablen Parameter bei Create bzw. Execute <StructLayout(LayoutKind.Sequential)> _ Public Structure BASSVIS_EXEC Friend Pluginfile As String ' Dateiname des Plugins f�r Sonique und Winamp Friend AMP_UseOwnW1 As Integer ' Flag f�r Winamp False =(Render Winamp5 im eigenen Window) 0=aus,1=an Friend AMP_UseOwnW2 As Integer ' Flag f�r Winamp False =(Render Winamp2 im eigenen Window) 0=aus,1=an Friend AMP_Moduleindex As Integer ' Modul-index f�r Winamp Friend SON_PaintHandle As IntPtr ' Painthandle f�r Sonique Friend SON_ConfigFile As String ' Dateiname der Konfiguration f�r Sonique Friend SON_Flags As Integer ' Flags f�r Sonique Friend WMP_PluginIndex As Integer ' Pluginindex f�r WMP; Friend WMP_PresetIndex As Integer ' Presetindex f�r WMP Friend WMP_SrcVisHandle As IntPtr ' ContainerVisHandle f�r WMP Friend BB_ParentHandle As IntPtr ' Parent Windowhandle Friend BB_Flags As Integer ' Flags f�r BassBox selbe wie Sonique Friend BB_ShowFPS As Boolean ' Frames pro Sekunde anzeigen Friend BB_ShowPrgBar As Boolean ' Progressbar anzeigen Friend AIMP_PaintHandle As Integer ' Painthandle für Aimp2 Friend AIMP_Flags As Integer ' Flags für Aimp2 Friend Width As Integer ' Fensterbreite Friend Height As Integer ' Fensterh�he Friend Left As Integer ' Top Friend Top As Integer ' Left End Structure <StructLayout(LayoutKind.Sequential)> _ Public Structure BASSVIS_INFO Friend SongTitle As String ' SongTitel ohne Pfad Friend Songfile As String ' SongFile incl. Pfad (StreamFile) Friend pos As Integer ' StreamPos = 1000*StreamPos Friend len As Integer ' Stream l�nge Friend PlaylistPos As Integer ' PlaylistPos minimal > 0 Friend Playlistlen As Integer ' Playlist l�nge Friend SampleRate As Integer ' Samplerate default = 44100 Friend BitRate As Integer ' Friend Duration As Integer ' Friend Channels As Integer ' 2 End Structure Public Enum BASSVIS_PLAYSTATE psError = -1 psStop = 0 psPlay = 1 psIsPlaying = 2 psPause = 3 psPrevTitle = 4 psNextTitle = 5 psSetPlaylistTitle = 6 psGetPlaylistTitlePos = 7 psSetPlaylistPos = 8 psGetSelectedTitlePos = 9 psPlaylistClear = 10 psAddPlaylistTitle = 11 End Enum 'Core functions for initalizing BASSVIS and Find Plugins of any kind Public Declare Function BASSVIS_Init Lib "bass_vis.dll" ( _ ByVal Kind As BassVisKind, _ ByVal AppHandle As IntPtr, _ ByVal WinHandle As IntPtr _ ) As Boolean 'Core functions for initalizing BASSVIS and Find Plugins of any kind 'delemiter As Byte = 44 .. ASC(",") 'you can send other delemiter for Spliting Public Declare Function BASSVIS_FindPlugins Lib "bass_vis.dll" ( _ ByVal Kind As BassVisKind, _ ByVal PluginPath As String, _ ByVal Searchflags As Integer, _ Optional ByVal delemiter As Byte = 44 _ ) As Int32 Public Declare Function BASSVIS_Free Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_PARAM, _ ByRef Base As BASSVIS_PARAM _ ) As Boolean Public Declare Function BASSVIS_GetVersion Lib "bass_vis.dll" () As String Public Declare Sub BASSVIS_ExecutePlugin Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_EXEC, _ ByRef Base As BASSVIS_PARAM _ ) Public Declare Function BASSVIS_RenderChannel Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_PARAM, _ ByVal channel As Integer _ ) As Boolean Public Declare Function BASSVIS_StartRecord Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_PARAM, _ Optional ByVal SampleRate As Integer = 44100, _ Optional ByVal Channels As Integer = 2 _ ) As Boolean Public Declare Function BASSVIS_Config Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_PARAM, _ Optional ByVal Entry As Integer = 0 _ ) As Boolean Public Declare Function BASSVIS_SetInfo Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_PARAM, _ ByRef infos As BASSVIS_INFO _ ) As Boolean Public Declare Function BASSVIS_Resize Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_PARAM, _ ByVal Left As Integer, _ ByVal Top As Integer, _ ByVal Width As Integer, _ ByVal Height As Integer _ ) As Boolean Public Declare Function BASSVIS_SetFullscreen Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_PARAM, _ ByVal SourceHandle As IntPtr, _ ByVal DestHandle As IntPtr, _ ByVal SourceLeft As Integer, _ ByVal SourceTop As Integer, _ ByVal SourceWidth As Integer, _ ByVal SourceHeight As Integer, _ ByVal FullScreenFlag As Boolean, _ ByVal FullScreenWidth As Integer, _ ByVal FullScreenHeight As Integer _ ) As Boolean Public Declare Function BASSVIS_GetModulePresetCount Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_PARAM, _ ByVal Pluginname As String _ ) As Int32 Public Declare Function BASSVIS_GetModulePresetName Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_PARAM, _ ByVal index As Integer, _ ByVal Pluginname As String _ ) As Int32 Public Declare Function BASSVIS_GetModulePresetNameList Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_PARAM, _ ByVal Pluginname As String _ ) As Int32 Public Declare Function BASSVIS_SetModulePreset Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_PARAM, _ ByVal index As Integer _ ) As Boolean Public Declare Function BASSVIS_GetOption Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_PARAM, _ ByVal options As Integer _ ) As Int32 Public Declare Function BASSVIS_SetOption Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_PARAM, _ ByVal options As Integer, _ ByVal value As Integer _ ) As Boolean Public Declare Function BASSVIS_SetPlayState Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_PARAM, _ ByVal State As BASSVIS_PLAYSTATE, _ Optional ByVal value As Integer = -1, _ Optional ByVal Title As String = "" _ ) As Int32 Public Declare Function BASSVIS_GetPluginHandle Lib "bass_vis.dll" ( _ ByVal Kind As BassVisKind, _ ByVal Pluginfile As String _ ) As Int32 Public Declare Function BASSVIS_GetPluginName Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_PARAM _ ) As Int32 Public Declare Sub BASSVIS_Quit Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_PARAM _ ) Public Declare Sub BASSVIS_SetVisPort Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_PARAM, _ ByVal WindowHandle As IntPtr, _ ByVal ContainerHandle As IntPtr, _ ByVal x As Int32, _ ByVal y As Int32, _ ByVal Width As Int32, _ ByVal Height As Int32 _ ) Public Declare Sub BASSVIS_WINAMP_RemoveCallback Lib "bass_vis.dll" () 'Special for Sonique, Aimp2 Public Declare Function BASSVIS_Clicked Lib "bass_vis.dll" ( _ ByRef param As BASSVIS_PARAM, _ ByVal x As Integer, _ ByVal y As Integer _ ) As Boolean 'Spezial für Sonique Public Declare Function BASSVIS_SONIQUEVIS_RenderToDC Lib "bass_vis.dll" ( _ ByVal Kind As BassVisKind, _ ByVal handle As Int32, _ ByVal channel As Int32, _ ByVal canvas As Int32 _ ) As Boolean Public Declare Function BASSVIS_SONIQUEVIS_RenderToDC2 Lib "bass_vis.dll" ( _ ByVal Kind As BassVisKind, _ ByVal handle As Int32, _ ByVal Data As IntPtr, _ ByVal fft As IntPtr, _ ByVal canvas As Int32, _ ByVal flags As Int32, _ ByVal pos As Int32 _ ) As Boolean 'Public delegate for the changing state of a playlist Public Declare Sub BASSVIS_WINAMP_SetStateCallback Lib "bass_vis.dll" (ByVal CallBackDelegate As BassVis_PlayStateChanging) Public Delegate Sub BassVis_PlayStateChanging(ByVal NewState As BASSVIS_PLAYSTATE) End Module http://home.arcor.de/em.weiss/Example.rar Soweit laufen alle Plugins bis auf AVS.dll Diese funktioniert aber einwandfrei beim Debuggen nur nicht als selbstständige EXE. gruss Emil |
Zitat |
Registriert seit: 25. Nov 2005 Ort: München 1.909 Beiträge Delphi 2010 Professional |
#4
a) Das heißt VB.Net, da ist kein Unterstrich.
b) Tue dir selbst den Gefallen und schreibe diese .NEt API in C#. VB.Net-Nutzer (Masochisten soll's geben) können die einfach nutzen. Unter'm Strich kompiliert beides zu IL. C# hätte den Vorteil, dass dir Leute tatsächlich weiterhelfen. Ich hörte nach 3 Zeilen von dem Kauderwelsch auf, weil mir mein Hirn mit Notabschaltung drohte. Ernsthaft, mit C# findest du hier oder auf einschlägigen Seiten wie stackoverflow.com fast sofort Hilfe.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says: “If you say something complicated, I’ll slit your throat.” |
Zitat |
EWeiss
(Gast)
n/a Beiträge |
#5
Zitat:
Das heißt VB.Net, da ist kein Unterstrich.
Zitat:
Tue dir selbst den Gefallen und schreibe diese .NEt API in C#. VB.Net-Nutzer (Masochisten soll's geben) können die einfach nutzen. Unter'm Strich kompiliert beides zu IL.
Es gibt Leute die verwenden VB.NET und wollen meine DLL nutzen warum soll ich denen jetzt sagen portiert mal schon nach C## Wäre das selbe ich sage dir verwende lieber VB als Delphi gruss Emil |
Zitat |
Registriert seit: 25. Nov 2005 Ort: München 1.909 Beiträge Delphi 2010 Professional |
#6
Zitat von EWeiss:
Das bringt mir nichts!
Es gibt Leute die verwenden VB.NET und wollen meine DLL nutzen warum soll ich denen jetzt sagen portiert mal schon nach C## Wäre das selbe ich sage dir verwende lieber VB als Delphi VB.Net kann direkt mit C# kompilierte Assemblies benutzen, und auch andersrum. Denn beide sind keine nativen Sprachen, sondern kompilieren zu MSIL. Hättest du deine bisherigen Versuche in C# geschrieben, hätte ich dir wohl schon vor 10 Minuten die Lösung nennen können. Aber durch den diffusen Krams wühle ich mich nicht nach Feierabend.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says: “If you say something complicated, I’ll slit your throat.” |
Zitat |
EWeiss
(Gast)
n/a Beiträge |
#7
Zitat:
Aber durch den diffusen Krams wühle ich mich nicht nach Feierabend.
Wenn jemand helfen will da freu ich mich drüber. Wenn man nur OT bringt hilft mir das nicht weiter demnach war dein Beitrag für die Katz. Aber was soll's gruss Emil |
Zitat |
(Moderator)
Registriert seit: 25. Jun 2002 Ort: Hausach 7.641 Beiträge |
#8
Der Tip das in C# zu machen ist nicht Offtopic sondern sehr Sinnvoll.
Wie auch schon gesagt wurde: Diejenigen die sich VB wirklich antun wollen referenzieren die dll so oder so - für die ist es vollkommen egal, in welcher Sprache die gemacht wurde. Wenn Du Dich damit leichter tust könntest Du sie auch in Delphi Prism schreiben.
Zitat:
Sobald ich sie aber als eigenständige EXE laufen lasse stürzt die Anwendung ab.
Wenn es auf Windows 7 läuft, dann würde ich als allererstes darauf tippen, das auf den anderen Maschinen das .NET Framework fehlt. Für welche .NET Version hast Du das Assembly denn kompiliert und ist diese Version des .NET Frameworks auch auf allen Zielmaschinen installiert? Edit Nachtrag: Ich hab ganz ehrlich grad versucht zu gucken, ob die Marshal-Attribute richtig gesetzt sind, aber bei dem VB-Scheiss (sorry, ist aber so) hab ich echt keine Lust. C# wäre okay, aber wenn Du meinst Du müsstest so einen Mist wie VB benutzen, dann musst Du halt damit rechnen dass richtige Programmierer Dir dabei nicht helfen wollen und werden. Das ist echt eklig zu lesen. Mehr als eklig. Das Zeug macht mich richtig aggressiv.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org |
Zitat |
EWeiss
(Gast)
n/a Beiträge |
#9
Zitat:
Der Tip das in C# zu machen ist nicht Offtopic sondern sehr Sinnvoll.
Das ist mir ganz neu.
Zitat:
Wie auch schon gesagt wurde: Diejenigen die sich VB wirklich antun wollen referenzieren die dll so oder so - für die ist es vollkommen egal, in welcher Sprache die gemacht wurde. Wenn Du Dich damit leichter tust könntest Du sie auch in Delphi Prism schreiben.
Die Anwendung in VB.NET funktioniert auf XP ohne Probleme kompiliert oder in der Developer Umgebung beim debuggen.
Zitat:
Wenn es auf Windows 7 läuft, dann würde ich als allererstes darauf tippen, das auf den anderen Maschinen das .NET Framework fehlt. Für welche .NET Version hast Du das Assembly denn kompiliert und ist diese Version des .NET Frameworks auch auf allen Zielmaschinen installiert?
Als selbständige EXE nicht.. Das ist mein problem. Ich finde einfach nicht heraus warum die AVS.dll von Winamp nicht funktioniert mit .NET (Kompiliert) Alle Anwendungen (meine Samples) für andere Sprachen VB6, Delphi, C++ haben kein Problem mit der AVS.dll Auch Winamp meldet keine probleme. Beim beenden wird keine Fehlermeldung ausgegeben dann hätte ich auch versucht das selbst zu erledigen. So hab ich aber keinen anhaltspunkt. Mein Hauptproblem ist es geht grundsätzlich (Debuggen) aber nicht als eigenständige EXE. Daher meine vermutung das vielleicht doch etwas mit den Parametern die übergeben werden nicht stimmt. gruss Emil |
Zitat |
Registriert seit: 25. Nov 2005 Ort: München 1.909 Beiträge Delphi 2010 Professional |
#10
Zitat von EWeiss:
Zitat:
Der Tip das in C# zu machen ist nicht Offtopic sondern sehr Sinnvoll.
Das ist mir ganz neu. So ziemlich alle Built-in .Net libs, außer mscorelib, sind in C# geschrieben.
Zitat:
In Windows 7 läuft sie nur beim Debuggen ohne Fehler.
Als selbständige EXE nicht.. Das ist mein problem. Da deine DLL aber in Delphi geschrieben ist, und wir hier (nur) von Windows reden, wird sie wohl nur von einem 32Bit Prozess aus geladen werden können. AnyCPU heißt, dass der JIT-Compiler die Anwendung auf einem x64 System mit 64Bits, auf einem 32Bit-System mit 32Bit erzeugen wird. Wenn du dort x86 einträgst, ist es immer 32Bit und wird einfach gehen. Was du willst, ist eine Classlibrary anlegen, die deine DLL vernünftig verpackt. Also wohl nicht nur die Funktionen importiert, weil dass können die Devs einfach selbst. Sondern diese Imports vernünftig in hübsche Klassen verpacken. Und mit solchen Konstanten braucht man in .Net gar nicht anfangen. Unterstriche sind in den .Net API Guidelines mehr als nur ungern gesehen. Und numerische Konstanten löst man mit Enums. (wie du es ja in Delphi auch hast)
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says: “If you say something complicated, I’ll slit your throat.” |
Zitat |
Ansicht |
Linear-Darstellung |
Zur Hybrid-Darstellung wechseln |
Zur Baum-Darstellung wechseln |
ForumregelnEs 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
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
LinkBack URL |
About LinkBacks |