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查看計算機內的組件,但是查不到我注冊的類..



