AGB  ·  Datenschutz  ·  Impressum  







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

VB_NET Parameter zuweisen

Ein Thema von EWeiss · begonnen am 14. Dez 2009 · letzter Beitrag vom 15. Dez 2009
Antwort Antwort
Seite 1 von 2  1 2      
EWeiss
(Gast)

n/a Beiträge
 
#1

VB_NET Parameter zuweisen

  Alt 14. Dez 2009, 18:23
Hallo kennt sich jemand mit VB.NET und Delphi aus?

gruss Emil
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: VB_NET Parameter zuweisen

  Alt 14. Dez 2009, 18:25
Ja
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

Re: VB_NET Parameter zuweisen

  Alt 14. Dez 2009, 18:37
Zitat von Die Muhkuh:
Ja
das ist Superp

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:
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.
und VB.NET
Code:
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&#65533;r die variablen Parameter bei Create bzw. Execute
    <StructLayout(LayoutKind.Sequential)> _
    Public Structure BASSVIS_EXEC
        Friend Pluginfile As String       ' Dateiname des Plugins f&#65533;r Sonique und Winamp
        Friend AMP_UseOwnW1 As Integer    ' Flag f&#65533;r Winamp False =(Render Winamp5 im eigenen Window) 0=aus,1=an
        Friend AMP_UseOwnW2 As Integer    ' Flag f&#65533;r Winamp False =(Render Winamp2 im eigenen Window) 0=aus,1=an
        Friend AMP_Moduleindex As Integer ' Modul-index f&#65533;r Winamp
        Friend SON_PaintHandle As IntPtr  ' Painthandle f&#65533;r Sonique
        Friend SON_ConfigFile As String   ' Dateiname der Konfiguration f&#65533;r Sonique
        Friend SON_Flags As Integer       ' Flags f&#65533;r Sonique
        Friend WMP_PluginIndex As Integer ' Pluginindex f&#65533;r WMP;
        Friend WMP_PresetIndex As Integer ' Presetindex f&#65533;r WMP
        Friend WMP_SrcVisHandle As IntPtr ' ContainerVisHandle f&#65533;r WMP
        Friend BB_ParentHandle As IntPtr  ' Parent Windowhandle
        Friend BB_Flags As Integer        ' Flags f&#65533;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&#65533;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&#65533;nge
        Friend PlaylistPos As Integer     ' PlaylistPos minimal > 0
        Friend Playlistlen As Integer     ' Playlist l&#65533;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
Ein Sample Projekt kannst du hier laden. Falls du da mal hineinschauen willst. (VB.NET)
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
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#4

Re: VB_NET Parameter zuweisen

  Alt 14. Dez 2009, 19:19
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.”
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

Re: VB_NET Parameter zuweisen

  Alt 14. Dez 2009, 19:24
Zitat:
Das heißt VB.Net, da ist kein Unterstrich.
Ja ist mir klar arbeite nicht erst seit gestern damit .. Tut sich aber gut im Thread

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.
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

gruss Emil
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#6

Re: VB_NET Parameter zuweisen

  Alt 14. Dez 2009, 19:30
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
Weißt du überhaupt, was das ".Net" in "VB.Net" bedeutet?
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.”
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

Re: VB_NET Parameter zuweisen

  Alt 14. Dez 2009, 19:57
Zitat:
Aber durch den diffusen Krams wühle ich mich nicht nach Feierabend.
Hab ich doch von dir gar nicht verlangt...

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
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#8

Re: VB_NET Parameter zuweisen

  Alt 14. Dez 2009, 20:30
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.
Wie macht sich der Absturz bemerkbar?
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
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

Re: VB_NET Parameter zuweisen

  Alt 14. Dez 2009, 20:40
Zitat:
Der Tip das in C# zu machen ist nicht Offtopic sondern sehr Sinnvoll.
Ich soll also ein C## Dokument in eine VB.NET umgebung einfügen und das kompiliert dann noch?
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.
Ich möchte keine extra DLL erstellen sondern das ist nur die API um meine in Delphi erstellte DLL anzusprechen.
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?
In Windows 7 läuft sie nur beim Debuggen ohne Fehler.
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
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#10

Re: VB_NET Parameter zuweisen

  Alt 14. Dez 2009, 21:20
Zitat von EWeiss:
Zitat:
Der Tip das in C# zu machen ist nicht Offtopic sondern sehr Sinnvoll.
Ich soll also ein C## Dokument in eine VB.NET umgebung einfügen und das kompiliert dann noch?
Das ist mir ganz neu.
Du kompilierst es in C# und referenzierst das in Vb.Net, so wie du schon andere Assemblies referenzierst hast, die in C# geschrieben sind. System.Windows.Forms, System, System.Xml, etc.
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.
Dann hast du in den Projektoptionen unter "Build" "anyCPU" als CPU-Plattform stehen.
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.”
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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