Announcement

Collapse
No announcement yet.

COM-DLL in C# aufrufen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • COM-DLL in C# aufrufen

    Hallo

    Ich habe versucht in Visual C# (2008 .Net 2.0) folgende COM-DLL zu schreiben

    Code:
    AssemblyInfo.cs
    
    using System.Reflection;
    using System.Runtime.CompilerServices;
    using System.Runtime.InteropServices;
    
    [assembly: AssemblyTitle("ClassLibrary1")]
    [assembly: AssemblyDescription("")]
    [assembly: AssemblyConfiguration("")]
    [assembly: AssemblyCompany("")]
    [assembly: AssemblyProduct("ClassLibrary1")]
    [assembly: AssemblyCopyright("2008")]
    [assembly: AssemblyTrademark("")]
    [assembly: AssemblyCulture("")]
    [assembly: ComVisible(true)]
    [assembly: Guid("bc232d0f-aa45-4dd0-b7cd-65ddcca0524c")]
    [assembly: AssemblyVersion("1.0.0.0")]
    [assembly: AssemblyFileVersion("1.0.0.0")]
    Code:
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Runtime.InteropServices;
    
    namespace CL
    {
        [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsDual)]
        public interface _Mathe
        {
            [DispId(1)]
            int add(int a, int b);
    
            [DispId(2)]
            int sub(int a, int b);
    
            [DispId(3)]
            int mult(int a, int b);
        }
    
        [ClassInterface(ClassInterfaceType.None)]
        [ProgId("CL.Mathe")]
        public class Mathe : _Mathe
        {
            public Mathe() { }
    
            public int add(int a, int b)
            {
                return (a + b);
            }
    
            public int sub(int a, int b)
            {
                return (a - b);
            }
    
            public int mult(int a, int b)
            {
                return (a * b);
            }
        }
    }
    Nun habe ich versucht diese DLL auf einem anderen PC mit C# Visual Studio 2003 (.Net 1.1) einzubinden und scheitere leiter kläglich.

    Ist es möglich die DLL in einer älteren .Net Version oder einer anderen Programmiersprache (C++) aufzurufen und wenn ja, wie?

    Für jede Hilfe bin ich sehr dankbar

  • #2
    Originally posted by Bundel View Post
    Nun habe ich versucht diese DLL auf einem anderen PC mit C# Visual Studio 2003 (.Net 1.1) einzubinden und scheitere leiter kläglich.

    Ist es möglich die DLL in einer älteren .Net Version aufzurufen
    Nicht als DLL Inprozess. In einem Prozessraum kann immer nur eine .NET-Version laufen.

    Originally posted by Bundel View Post
    oder einer anderen Programmiersprache (C++) aufzurufen
    Sollte für native Programmiersprachen problemlos möglich sein.

    Comment


    • #3
      Wie geht das in C++?

      Ich habe leider keine Ahnung von der Sprache und würde gerne die Funktionen aus meiner DLL in C++ testen

      Comment


      • #4
        Hallo,
        Wie geht das in C++?
        Als Anregung gibt es die Beispiele von http://www.computerbase.de/lexikon/Dynamic_Link_Library
        MfG
        Cheat-Sheets for Developers / Programming Quotes

        Comment


        • #5
          Als Anregung gibt es die Beispiele von http://www.computerbase.de/lexikon/Dynamic_Link_Library
          Ich habe mir die Beispiele auf der Seite angesehen und wenn ich das richtig verstehe kann ich mit den Beispielen keine COM-DLL in C++ einbinden.
          Ich möchte aus der oben beschriebenen DLL z.B. die Funtion add(1,2) in C++ aufrufen. Nur weiß ich nicht wie

          Comment


          • #6
            http://entwickler-forum.de/showthread.php?t=52344

            Lösung gefunden.

            Comment

            Working...
            X