Hallo,
Wir sollten Delphi dll's in vb.net nutzen können. Habe mir mal kleine Beispiele gemacht. Die Proceduren 'OnlyHallo' und 'GetHallo' funktionieren. Aber 'HalloExtend' ergibt die Fehlermeldung: "Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig..."
Das Delphidll:
library DelphiForVB;
uses
SysUtils,
Dialogs,
Classes;
{$R *.res}
procedure OnlyHallo; stdcall;
begin
ShowMessage('Hello world')
end;
function GetHallo: PChar; stdcall;
begin
result:= PChar('Hallo from dll')
end;
procedure HalloExtend(var s: PCHar); stdcall;
begin
ShowMessage('Hallo '+s)
end;
exports
OnlyHallo,
GetHallo,
HalloExtend;
begin
end.
und mein vb:
Imports System.Runtime.InteropServices
Public Class Form1
Declare Sub OnlyHallo Lib "DelphiForVB.dll" ()
Declare Function GetHallo Lib "DelphiForVB.dll" () As String
Declare Sub HalloExtend Lib "DelphiForVB.dll" (ByVal s As String)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
OnlyHallo()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox1.Text = GetHallo
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
HalloExtend(TextBox2.Text)
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Close()
End
End Sub
End Class
Kann mir jemand weiterhelfen?
Grüsse aqua
Wir sollten Delphi dll's in vb.net nutzen können. Habe mir mal kleine Beispiele gemacht. Die Proceduren 'OnlyHallo' und 'GetHallo' funktionieren. Aber 'HalloExtend' ergibt die Fehlermeldung: "Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig..."
Das Delphidll:
library DelphiForVB;
uses
SysUtils,
Dialogs,
Classes;
{$R *.res}
procedure OnlyHallo; stdcall;
begin
ShowMessage('Hello world')
end;
function GetHallo: PChar; stdcall;
begin
result:= PChar('Hallo from dll')
end;
procedure HalloExtend(var s: PCHar); stdcall;
begin
ShowMessage('Hallo '+s)
end;
exports
OnlyHallo,
GetHallo,
HalloExtend;
begin
end.
und mein vb:
Imports System.Runtime.InteropServices
Public Class Form1
Declare Sub OnlyHallo Lib "DelphiForVB.dll" ()
Declare Function GetHallo Lib "DelphiForVB.dll" () As String
Declare Sub HalloExtend Lib "DelphiForVB.dll" (ByVal s As String)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
OnlyHallo()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox1.Text = GetHallo
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
HalloExtend(TextBox2.Text)
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Close()
End
End Sub
End Class
Kann mir jemand weiterhelfen?
Grüsse aqua
Comment