Chirurgia spinală minim invazivă
Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical. Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale. www.neurohope.ro |
a include o functie din dll facut in delphi
Last Updated: Feb 11 2014 18:28, Started by
simirulles
, Feb 10 2014 20:40
·
0
#1
Posted 10 February 2014 - 20:40
Salut, am o problema am deja un Dll creat in Delphi cu o functie in el,cum se poate de apelat functia in VB.NET 2010 Express
iata codul ddl din delphi library Project2; uses System.SysUtils, System.Classes;[/b] [b]{$R *.res} function MyNewMessage(s:string):string; stdcall; var i:integer; s1:string; begin s1:='Hello World '; for i:=length(s) downto 1 do s1:=s1+s[i]; MyNewMessage:=s1; end; exports MyNewMessage index 1; begin end. P.S.:In Delphi merge! |
#2
Posted 10 February 2014 - 20:50
http://msdn.microsof...#code-snippet-2
Dar tu returnezi o adresa ce dispare imediat (s1 e alocat pe stiva) !! Edited by neagu_laurentiu, 10 February 2014 - 20:51. |
#4
Posted 10 February 2014 - 22:15
eu am incercat asa dar nu merge,poate cineva stie raspunsul?
Imports System Imports System.Runtime.InteropServices Module example <DllImport("project2.dll", CharSet:=CharSet.Unicode)> _ Function Function MyNewMessage(ByVal hwnd As String) As String End Function Sub main() MyNewMessage("Hello World!") End Sub End Module Public Class Form1 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Close() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MsgBox(MyNewMessage(TextBox1.Text)) End Sub |
#6
Posted 11 February 2014 - 10:34
Tu realizezi ca s1 dispare la iesirea din functie ? Nu are treaba cu Delphi sau .NET, e o greseala ce faci tu acolo.
Aloca dinamic pe s1 ca sa-l returnezi sau primeste ca parametru in functia aia un pointer ce-l vei "umple" sau poate are deja alocat spatiu si-l completezi etc. Pe urma vezi cum traduci tipurile la .NET. |
#7
Posted 11 February 2014 - 11:48
Quote Tu realizezi ca s1 dispare la iesirea din functie ? iata functia in delphi function MyNewMessage(s:string):string; stdcall;external 'c:\proj2\Project2.dll' index 1; procedure TForm2.Button1Click(Sender: TObject); begin showmessage(MyNewMessage(edit1.text)); end; Edited by simirulles, 11 February 2014 - 11:53. |
#8
Posted 11 February 2014 - 12:05
Cred ca incurc eu tehnologiile, Pascal/Delphi parca are string de tip value cu o lungime de max 255 caractere, nu pointer !
Edited by neagu_laurentiu, 11 February 2014 - 12:31. |
#9
Posted 11 February 2014 - 18:28
Daca vrei un dll care sa fie folosit dintr-un program creat in alt limbaj de programare, nu folosi in definita functiei de export structuri de date specifice limbajului (de ex: string). In cazul tau, foloseste pointeri catre un sir de caractere (pchar), cu memoria initializata de functia apelanta, trimis ca si parametru.
|
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users