Hallo,
ich weiß es gab schon ähnliche Threads, habe auch schon die Informationen dort befolgt, bin aber trotzdem zu keiner funktionierenden Lösung gekommen. Problem dürfte sein, dass ich mich in Visual Basic einfach nicht auskenne.
Mein Anliegen ist es nun eine in delphi geschriebene
DLL in Visual Basic zu verwenden. Ich habe dazu ein ganz einfaches Beispiel welches ich in einem Tutorial für DLLs gefunden habe verwendet.
Delphi-Quellcode:
library mathe;
{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ShareMem muss sich in der
ersten Unit der unit-Klausel der Bibliothek und des Projekts befinden (Projekt-
Quelltext anzeigen), falls die DLL Prozeduren oder Funktionen exportiert, die
Strings als Parameter oder Funktionsergebnisse übergeben. Das gilt für alle
Strings, die von oder an die DLL übergeben werden -- sogar für diejenigen, die
sich in Records und Klassen befinden. Sharemem ist die Schnittstellen-Unit zur
Verwaltungs-DLL für gemeinsame Speicherzugriffe, BORLNDMM.DLL.
Um die Verwendung von BORLNDMM.DLL zu vermeiden, können Sie String-
Informationen als PChar- oder ShortString-Parameter übergeben. }
uses
SysUtils,
Classes;
{$R *.res}
function addiere(v1, v2: integer):integer;
stdcall;
begin
Result := v1 + v2;
end;
exports
addiere;
begin
end.
Daraus ist die
dll mathe.dll entstanden. Soweit so gut.
Nun wollte ich sie in VB einbinden. Ich habe dort ein neues Projekt erstellt und die
dll in das Verzeichnis gelegt wo auch das Projekt abgespeichert wurde und die ausführbare VB Datei dann gespeichert worden wäre.
Ich habe sie versucht folgendermaßen einzubinden:
Code:
Declare Function addiere Lib "mathe.dll" Alias "addiere" (ByVal V1 as Integer, ByVal v2 as Integer) As Integer
Wobei das
Alias "addiere" sofort wieder weg war.
Die Funktion habe ich dann in einem ClickEvent aufgerufen:
Als ich dieses Projekt dann ausführen wollte bekam ich eine Fehlermeldung...
Zitat:
Fehler beim Kompilierem:
Konstanten, Zeichenfolgen fester Länge, benutzerdefinierte Arrays und Declare-Anweisungen sind als öffentliche Mitglieder von Objektmodulen nicht zugelassen.
Was mach ich nur falsch?