This might be of some help.
Here is a very very basic example of calling a netloaded
function within AutoCad from a windows application.
The DLL and EXE need to be in the same folder
Attached is the VB Class Application.
--VB.NET Class Application
Imports System.Runtime.InteropServices
Imports Autodesk.AutoCAD.Runtime
Namespace AcadVbMgd
<Guid("4BD6BCF0-80B8-47f2-969A-F015DDF9FFE9")> _
Public Interface _Example
<DispId(1)> Function msgTest() As String
End Interface
<Guid("3DC53537-D18D-42f0-9D94-9ED977921A0B"), ClassInterface(ClassInterfaceType.None)> _
Public Class Example
Inherits System.EnterpriseServices.ServicedComponent
Implements _Example
Public Function msgTest() As String Implements _Example.msgTest
Return "Works for me"
End Function
End Class
--VB.NET Windows Application
Imports Autodesk.AutoCAD.Interop
Imports Autodesk.AutoCAD.Interop.Common
Imports AcadVbMgd
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim aa As AcadApplication = CType(System.Runtime.InteropServices.Marshal.GetActiveObject("Autocad.Application.17.1"), AcadApplication)
Dim d As AcadVbMgd.AcadVbMgd._Example = CType(aa.GetInterfaceObject("AcadVbMgd.AcadVbMgd.Example"), AcadVbMgd.AcadVbMgd._Example)
Dim test As String = d.msgTest()
MessageBox.Show(test)
End Sub
End Class
--C# Class Application
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using Autodesk.AutoCAD.Runtime;
[assembly: CommandClass(typeof(AcadCsMgd.Demo))]
namespace AcadCsMgd
{
[Guid("78FB2976-E6F5-460b-BD94-730D7B90F286")]
public interface _Demo
{
[DispId(1)]
string msgTest();
}
[Guid("3E10E0DD-82A1-4438-BB9F-B988842C3A70"), ClassInterface(ClassInterfaceType.None)]
public class Demo : System.EnterpriseServices.ServicedComponent, _Demo
{
public string msgTest()
{
return "Looking Good....";
}
}
}
--C# Windows Application
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Autodesk.AutoCAD.Interop;
using Autodesk.AutoCAD.Interop.Common;
using AcadCsMgd;
namespace AcadCsMgdTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
AcadApplication aa = (AcadApplication)System.Runtime.InteropServices.Marshal.GetActiveObject("Autocad.Application.17.1");
AcadCsMgd._Demo d = (AcadCsMgd._Demo)aa.GetInterfaceObject("AcadCsMgd.Demo");
string test = d.msgTest();
MessageBox.Show(test);
}
}
}