1,建立com組件
[ComVisible(true)] [Guid("751452F7-4541-4483-83E0-22EDC1278F58")] public interface IMxbLiabray { void Initialize(); void Dispose(); int Add(int x, int y); } [ComVisible(true)] [Guid("258CBDAF-D4CD-41D4-9480-A81793846816")] public class MxbLiabray : Form,IMxbLiabray { private static MxbLiabray Form1; private int m_value; private Button button1; private ListBox listBox1; public int Add(int x, int y) { MessageBox.Show($"x + y"); m_value = x + y; return x + y; } public void Dispose() { } public void Initialize() { button1 = new Button(); button1.Left = 200; button1.Text = "Exit"; button1.Click += new EventHandler(button1_Click); listBox1 = new ListBox(); this.Controls.Add(button1); this.Controls.Add(listBox1); Form1 = new MxbLiabray(); Application.Run(Form1); } private void button1_Click(object sender, System.EventArgs e) { int count = 1; // Check to see whether the user wants to exit the application. // If not, add a number to the list box. while (MessageBox.Show("Exit application?", "", MessageBoxButtons.YesNo) == DialogResult.No) { listBox1.Items.Add(count); count += 1; } // The user wants to exit the application. // Close everything down. Application.Exit(); }
1,代碼中,使用接口,以及guid和comvisible=true;
2,在生成之中進行打勾
簽名那里打勾---生產強程序集
3,生成com組件和注冊dll到全局緩存
regasm .\MxbLiabray.dll
gacutil.exe /i .\MxbLiabray.dll
4,在wincc中調用
Sub procedure1 Dim obj Dim k Set obj = CreateObject("MxbLiabray.MxbLiabray") k=obj.Initialize End Sub
注意名稱:
在注冊表中查看注冊的com組件名稱:
5,使用OLEVIER查看計算機內的組件,但是查不到我注冊的類..