Von .net zu Com zu Delphi 7

XChris

Erfahrenes Mitglied
hallo,

ich möchte eine .net 2.0 DLL nach Delphi bringen. Es ist ein usercontrol.

Hier zum Testen mein Code:
PHP:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace TestControlFuerWin32
{
	[Guid("C614B6C2-E35A-45CB-849E-FDCF048E910B")]
	public interface IComControl
	{
		[DispId(1)]
		void SetTextBox(string test);
	}
	
	[ClassInterface(ClassInterfaceType.None)]
 	[Guid("B38403FA-B1D0-48DB-B0B6-C450F4AF4B08")]
	public partial class TestControl : IComControl
	{
	
		public TestControl()
		{
			//
			// The InitializeComponent() call is required for Windows Forms designer support.
			//
			InitializeComponent();
			
			//
			// TODO: Add constructor code after the InitializeComponent() call.
			//
		}
		
		public void SetTextBox(string test)
		{
			textBox1.Text = test;
		}
	}
}

Beim Kompilieren (für interop registrieren) erhalte ich immer die fehlermeldung, die DLL enthalte keine Typen, die für COM32 zu regstrien seien.

Kann mir jemand nen Tip geben, wie ich mein usercontrol doch noch in ner Win32 zum Laufen bekomme? Gehen tut das. (Bitte keine Diskussionen über den Sinn.)

Chris
 
Hi,

soviel wie ich weiß, musst du noch die entsprechenden Klassen, Funktionen, Properties, etc auf ComVisible setzen.

Such mal hier im Forum, es gibt zu dem Thema hier schon massig Threads
 
Weiss jemand, wo die DLL von .net gesucht werden, wenn man in einer COM Komponente diese verwendet?

Anders ausgedrückt:

Ich habe eine DLL die ich via Com nutze. Diese DLL verweist nun auf mehrer andere .net DLL. Leider bekomm ich eine Fehlermeldung, wenn ich ein bestimmtes UserControl hinzufüge, dass die Klasse nicht gefunden wird (in Win32 wiederrum)

Mich würde also interssieren, WO die Com.DLL ihre Abhängigkeiten sucht.

Chris
 
XChris hat gesagt.:
Ich habe eine DLL die ich via Com nutze. Diese DLL verweist nun auf mehrer andere .net DLL. Leider bekomm ich eine Fehlermeldung, wenn ich ein bestimmtes UserControl hinzufüge, dass die Klasse nicht gefunden wird (in Win32 wiederrum)
Es wird im GAC und im Verzeichnis der entsprechenden Datei gesucht. Mir scheint es aber eher, dass die Ursache an einer anderen Stelle liegt.
Die Klassen, die du in den referenzierten DLLs nutzen willst, müssen ebenfalls für COM sichtbar sein. Ansonsten kennt der COM-Server die Klassen ja nicht.
 
Holla,

so habs hinbekommen. Mein Problem mit den nicht gefunden DLL resultiert aus falschen Einstellungen bei der Internationalisierung. (Assembly Info)

Hat jemand noch nen Tip, wie man Controls die in .net hübsch aussehen unter Win32 Probleme mit der Schriftgröße haben fixen kann?

Chris
 
Zurück