c#制作com組件供wincc調用


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,在生成之中進行打勾

image

簽名那里打勾---生產強程序集

image

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組件名稱:

image

5,使用OLEVIER查看計算機內的組件,但是查不到我注冊的類..


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM