AGB  ·  Datenschutz  ·  Impressum  







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

Standard DLL in VB geschrieben

Ein Thema von EWeiss · begonnen am 21. Sep 2008 · letzter Beitrag vom 22. Sep 2008
Antwort Antwort
Seite 1 von 2  1 2      
EWeiss
(Gast)

n/a Beiträge
 
#1

Standard DLL in VB geschrieben

  Alt 21. Sep 2008, 21:20
Für die ganz schlauen hier die meinen das es nicht geht.. @Elvis
Lebst vielleicht doch hinterm Mond ? hihiiihi nur Spass

"DLL"
Delphi-Quellcode:
Function DLLMain(ByVal A As Long, ByVal B As Long, ByVal c As Long) As Long
    DLLMain = 1
End Function

Sub Main()
    //This is a dummy, so the IDE doesn't complain
    //there is no Sub Main.
End Sub

//add more functions here, ie.
Function addition(ByVal A As Double, ByVal B As Double) As Double
  addition = A + B
End Function

Function subtraction(ByVal A As Double, ByVal B As Double) As Double
  subtraction = A - B
End Function

Function showmsg() As String
Dim sInput As Long
Dim intMin As Integer
Dim intSec As Integer
Dim TimeString As String

    sInput = InputBox("Bitte Zeit in MilliSekunden eingeben", "Result Zeit in Sekunden")
    If sInput > 0 Then
        intMin = sInput \ 60
        intSec = Int(sInput - intMin * 60)
        TimeString = Format$(intMin, "00") & ":" & Format$(intSec, "00")
    End If

    showmsg = TimeString
  
End Function
"Anwendung"
Delphi-Quellcode:
Private Declare Function subtraction Lib "TestDLL.DLL" (ByVal A As Double, ByVal B As Double) As Double
Private Declare Function addition Lib "TestDLL.DLL" (ByVal A As Double, ByVal B As Double) As Double
Private Declare Function showmsg Lib "TestDLL.DLL" () As Long

// Windows API Declaration
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" ( _
    ByVal lpString As Long _
) As Long

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
    ByRef Destination As Any, _
    ByRef Source As Any, _
    ByVal Length As Long _
)

Private Sub btnTime_Click()
    lblTime.Caption = VBStrFromAnsiPtr(showmsg())
End Sub

Private Sub cmdExit_Click()
End
End Sub

Private Sub Form_Load()
lblResult(0) = "9.87 + 2.99 = " & CStr(addition(9.87, 2.99))
lblResult(1) = "10 - 8.43 = " & CStr(subtraction(10, 8.43))
lblResult(2) = "9999 + 1543 = " & CStr(addition(9999, 1543))
End Sub

Private Function VBStrFromAnsiPtr(ByVal lpStr As Long) As String
Dim bStr() As Byte
Dim cChars As Long
    On Error Resume Next
    // Get the number of characters in the buffer
    cChars = lstrlen(lpStr)
    // Resize the byte array
    ReDim bStr(0 To cChars - 1) As Byte
    // Grab the ANSI buffer
    Call CopyMemory(bStr(0), ByVal lpStr, cChars)
    // Now convert to a VB Unicode string
    VBStrFromAnsiPtr = StrConv(bStr, vbUnicode)
End Function
Test im Anhang

Edit:
hab noch eine Function angehängt
Miniaturansicht angehängter Grafiken
dependency_156.jpg  
Angehängte Dateien
Dateityp: rar compiled_112.rar (6,6 KB, 12x aufgerufen)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Standard DLL in VB geschrieben

  Alt 21. Sep 2008, 21:27
Und funktioniert diese auch in anderen Sprachen?
Markus Kinzler
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

Re: Standard DLL in VB geschrieben

  Alt 21. Sep 2008, 21:30
Zitat von mkinzler:
Und funktioniert diese auch in anderen Sprachen?
Versuchs doch einfach
Entry point hast ja

gruss Emil
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Standard DLL in VB geschrieben

  Alt 21. Sep 2008, 21:37
Vielen Dank das du das Thema hier weiter verfolgst. Hier mal der Urspung.

Aber ich hoffe es geht jetzt hier nicht nur darum, zu zeigen das VB auch das kann was Delphi kann. Mich würde viel mehr interessiere, ob man in beiden Welten auch beides realisieren kann und wie (Aufwand). Bitte keine Kriege ausfechten.
Kann man nicht beides unter einen Hut bringen?

Ich finde das Thema ganz spannend.

Trotzdem die Frage warum darf mein Quellcode nichts von allem wissen und muss es doch benutzen können?

Als Ergänzung zum Urspungsthema und meinem Beispiel dort...
Wenn ich in meiner Klasse, die ich von einem Interface ableite eine zusätzliche Methode realisiere, kennt mein Interface und damit die erstellte Instanz ja diese spezielle Methode nicht. Deshalb muss, wenn ich solche Methode nutzen will, die nicht im Interface veröffentlicht wurden, die abgeleiteten Klassen in der Anwendung, die die zusätzliche Methode benutzen will, doch auch bekannt sein? Gut, hier könnte man natürlich auch noch ein weiteres Interface erstellen, mit dieser Erweiterung, dann müssten die konkreten Klassen nicht bekannt sein. Trotzdem verstehe ich nicht wieso selbst das Interface nicht bekannt sein soll? Das kann ich nicht nachvollziehen.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

Re: Standard DLL in VB geschrieben

  Alt 21. Sep 2008, 21:46
Zitat:
Wenn ich in meiner Klasse, die ich von einem Interface ableite eine zusätzliche Methode realisiere, kennt mein Interface und damit die erstellte Instanz ja diese spezielle Methode nicht.
Doch du kennst sie.
Mein Beispiel war darauf ausgelegt einen verbindung zwischen zwei Welten herzustellen
Deiner anwendung und Plugins welche von fremden erstellt wurden die du also nicht kennst.

Der Clou ist halt dieser das die IPersonU als Activex als Com opbject ausgelegt werden muss in Delphi.
Somit ist deine Anwendung und die fremd DLL jederzeit in der lage sich zu aktualisieren.

Gehe davon aus das du dann eine Meldung bekommst Interface nicht implementiert.
Wenn an IPersonU irgedetwas geändert wurde.

Also es soll hier niemand mit Vb arbeiten nur am rande.
IPersonU ist also ein Wrapper der sich zwichen deiner anwendung und der DLL setzt
und so dafür sorgt das beide immer über das aktuelle Interface verfügen.


EDIT:
Zitat:
Kann man nicht beides unter einen Hut bringen?
das kannst testen indem du einfach mal versuchst die DLL von VB in Delphi anzusprechen.

gruß Emil
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Standard DLL in VB geschrieben

  Alt 21. Sep 2008, 22:13
Naja, gerade hier hätte ich mir jetzt mal ein minimales Beispiel in Delphi und VB gewünscht, zur Verdeutlichung.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

Re: Standard DLL in VB geschrieben

  Alt 21. Sep 2008, 22:19
Zitat von omata:
Naja, gerade hier hätte ich mir jetzt mal ein minimales Beispiel in Delphi und VB gewünscht, zur Verdeutlichung.
Was möchtes du haben du meinst ich soll für die funktionen eine Test Anwendung schreiben
damit du sehen kannst das es funktioniert ?

Verstehe ich jetzt nicht ganz sorry

gruss Emil
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Standard DLL in VB geschrieben

  Alt 21. Sep 2008, 22:35
Weiss ich auch nicht, was ich haben möchte.
^--- Vielleicht ein E

Hier und im anderen Thread wird immer nur beschrieben das es geht oder das das blödsinn ist. Aber wie muss es richtig aussehen, wie ist es sinnvoll und funktionsfähig. Das wird hier nie beschrieben.

Naja, ich weiss auch nicht was ich mir vorgestellt habe. Ist auch nicht so wichtig...
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#9

Re: Standard DLL in VB geschrieben

  Alt 22. Sep 2008, 06:40
Dll mit VB dass ist echt ein Ding! Klassse Grüße // Martin

PS: Dieses VB ist regelmäßig totgesagt und taucht immer wieder auf...
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Standard DLL in VB geschrieben

  Alt 22. Sep 2008, 12:55
Zitat von EWeiss:
Zitat von mkinzler:
Und funktioniert diese auch in anderen Sprachen?
Versuchs doch einfach
Entry point hast ja
gruss Emil
Waren wir eben nicht noch bei Interfaces
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  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 12:35 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