Wir haben eine Automations-Server aufgesetzt und wollen ihn unter .NET (C#) nutzen.
Der COM-Server läßt sich auch anstandslos instanzieren. Ich habe dann auch eins der COM-Events zugewiesen, auch dies funktionierte und das Event wurde ausgelöst. Allerding erhalte ich bei der Zuweisung des zweiten COM-Events (und dabei ist es egal in welcher Reihenfolge und welches Event ich auslöse) eine Exception, wenn ich den Client starte.
Anbei sind der .Net Client und der Automations-Server als zip-file
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace TestCOMAddServer
{
/// <summary>
/// Summary description for WinForm.
/// </summary>
public class WinForm : System.Windows.Forms.Form
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
private System.Windows.Forms.TextBox tbFirstNumber;
private System.Windows.Forms.TextBox tbSecondNumber;
private System.Windows.Forms.Label lFirstNumber;
private System.Windows.Forms.Label lSecondNumber;
private System.Windows.Forms.Button bAdd;
private COMAddServer.COMAddServerClass AddServer = new COMAddServer.COMAddServerClass();
public WinForm()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
AddServer.BeforAdd += new COMAddServer.ICOMAddServerEvents_BeforAddEventHand ler(BeforAdd);
// Dies nächste Zeile löst eine Exception
AddServer.AfterAdd += new COMAddServer.ICOMAddServerEvents_AfterAddEventHand ler(AfterAdd);
}
Der COM-Server läßt sich auch anstandslos instanzieren. Ich habe dann auch eins der COM-Events zugewiesen, auch dies funktionierte und das Event wurde ausgelöst. Allerding erhalte ich bei der Zuweisung des zweiten COM-Events (und dabei ist es egal in welcher Reihenfolge und welches Event ich auslöse) eine Exception, wenn ich den Client starte.
Anbei sind der .Net Client und der Automations-Server als zip-file
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace TestCOMAddServer
{
/// <summary>
/// Summary description for WinForm.
/// </summary>
public class WinForm : System.Windows.Forms.Form
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
private System.Windows.Forms.TextBox tbFirstNumber;
private System.Windows.Forms.TextBox tbSecondNumber;
private System.Windows.Forms.Label lFirstNumber;
private System.Windows.Forms.Label lSecondNumber;
private System.Windows.Forms.Button bAdd;
private COMAddServer.COMAddServerClass AddServer = new COMAddServer.COMAddServerClass();
public WinForm()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
AddServer.BeforAdd += new COMAddServer.ICOMAddServerEvents_BeforAddEventHand ler(BeforAdd);
// Dies nächste Zeile löst eine Exception
AddServer.AfterAdd += new COMAddServer.ICOMAddServerEvents_AfterAddEventHand ler(AfterAdd);
}
Comment