Avatar billede baxos Nybegynder
31. januar 2007 - 18:56 Der er 15 kommentarer og
1 løsning

Delphi & Vb.net?

Kan disse 2 programmer godt arbejde sammen?
Måske via en tekst fil eller en dll?
200 Point til den der gir et grundigt svar hvordan og hvorfor
Avatar billede arne_v Ekspert
31. januar 2007 - 19:04 #1
Delphi nu om dage kommer i 2 versioner: en for Win32 og en for .NET

.NET version og VB.NET boer integrere perfekt - du kan bare bruge
assemblies

med Win32 versionen er der vel 2 muligheder:
- koere to EXE og kommunikere via sockets/pipes/global memory
- kommunikere via COM
Avatar billede arne_v Ekspert
31. januar 2007 - 19:05 #2
hvis du fortaeller hvilken vej, saa kan jeg maaske give flere detaljer
Avatar billede baxos Nybegynder
31. januar 2007 - 19:10 #3
Jeg bruger Win 32'eren
Avatar billede baxos Nybegynder
01. februar 2007 - 15:53 #4
Btw skal man kører 2 programmer eller behøver man kan at køre et?
Avatar billede arne_v Ekspert
02. februar 2007 - 01:22 #5
det burde være muligt at bygge VB.NET koden til et COM modul som du kan tilgå
fra Delphi (i Win32) og så vil det køre som et program

enten kan du google noget om hvordan eller så kan jeg prøve at bixe noget imorgen
eller lørdag
Avatar billede baxos Nybegynder
02. februar 2007 - 15:11 #6
Hmm okay :) kunne være dejligt hvis du ville prøve at lave lidt fis med det :)
Avatar billede arne_v Ekspert
03. februar 2007 - 22:42 #7
VB.NET kode:

Imports System
Imports System.Reflection

<assembly: AssemblyKeyFile("Delphi.snk")>
Namespace Delphi
    Public Class Test
        Public Function Dup(s As String, n As Integer) As String
            Dim res As String = ""
            Dim i As Integer
            For i = 1 To n
                res = res & s
            Next
            Dup = res
        End Function
    End Class
End Namespace

Delphi kode:

program d_vb;

{$APPTYPE CONSOLE}

uses
  ActiveX, ComObj;

var
  tst : Variant;

begin
  CoInitialize(nil);
  tst := CreateOLEObject('Delphi.Test');
  writeln(tst.Dup('ABC', 3));
  CoUninitialize;
  readln;
end.
Avatar billede arne_v Ekspert
03. februar 2007 - 22:44 #8
Ja jeg ved godt at den måde at bruge COM fra Delphi er en skandale, men det er nu
den nemmeste måde.

Hvis jeg gide prøver jeg at lave det rigtigt med type import og hele svineriet.
Avatar billede arne_v Ekspert
03. februar 2007 - 22:44 #9
for at builde VB.NET kode og registrere DLL:

sn -k Delphi.snk
gacutil /u Delphi.dll
regasm /u Delphi.dll
vbc /t:library Delphi.vb
regasm Delphi.dll
gacutil /i Delphi.dll
Avatar billede arne_v Ekspert
04. februar 2007 - 23:00 #10
jeg fik det til at virke med type import
Avatar billede arne_v Ekspert
04. februar 2007 - 23:00 #11
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices

<assembly: AssemblyKeyFile("Delphi.snk")>
Namespace Delphi
    <Guid("4A855566-3146-40dc-A226-45570F86FD0B"),InterfaceType(ComInterfaceType.InterfaceIsIDispatch)> Public Interface ITest
        <DispId(1)> Function Dup(s As String, n As Integer) As String
    End Interface
    <Guid("F87E97F4-8B5F-4761-BBE4-13512B9BA03B"),ClassInterface(ClassInterfaceType.None),ProgId("Delphi.Test")> Public Class Test
    Implements ITest
        Public Function Dup(s As String, n As Integer) As String Implements ITest.Dup
            Dim res As String = ""
            Dim i As Integer
            For i = 1 To n
                res = res & s
            Next
            Dup = res
        End Function
    End Class
End Namespace
Avatar billede arne_v Ekspert
04. februar 2007 - 23:00 #12
program d_vbx;

{$APPTYPE CONSOLE}

uses
  ActiveX,
  DelphiX_TLB in 'C:\e4\DelphiX_TLB.pas';

var
  tst : ITest;

begin
  CoInitialize(nil);
  tst := CoTest.Create;
  writeln(tst.Dup('ABC', 3));
  CoUninitialize;
  readln;
end.
Avatar billede arne_v Ekspert
04. februar 2007 - 23:01 #13
sn -k Delphi.snk
gacutil /u DelphiX.dll
regasm /u DelphiX.dll
vbc /t:library DelphiX.vb
regasm DelphiX.dll /tlb:DelphiX.tlb
gacutil /i DelphiX.dll
Avatar billede baxos Nybegynder
07. februar 2007 - 22:18 #14
Smid da lige et svar :)
Avatar billede arne_v Ekspert
07. februar 2007 - 22:26 #15
gerne
Avatar billede arne_v Ekspert
07. februar 2007 - 22:27 #16
har du faaet det til at virke ?

(det er ikke helt simpelt)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester